zoukankan      html  css  js  c++  java
  • RegExp入门笔记

    前言:

      一开始我是拒绝学正则表达式的,暑假看慕课上的PHP进阶课程里有一章是专门讲正则,然后我思考的几秒钟,就略过了。理由和大家一样,畏惧,听很多人说正则很难,然后就果断放弃。但是昨天看到知乎上有个话题,问大家为什么不喜欢正则,然后看到下面很多大神说正则处理字符串很有用,很有用,很有用,甚至有人说正则很有趣! 好吧,既然有用的东西,就一定要学,一定要学,一定要学!想当年我学微观经济这门课都是拒绝的,头疼的,但是后来期末备考却发现它的乐趣。所以,任何事情,只要用心投入,一定会收获到乐趣。


    什么是RegExp?

    描述字符串规则的表达式。 

    语法

    • 直接量语法:/pattern/attrs
    • 创建对象的语法:new RegExp(pattern,attrs)

    参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。

    参数 attributes 是一个可选的字符串,包含属性 "g"表示全局匹配,"i" 表示不区分大小写的匹配

    RegExp 对象方法

    regexpObj.test(str)

    测定正则表达式与指定字符串是否匹配。只要指定字符串中包含正则表达式,则返回true,否则返回false。

    regexpObj.exec(str)

    更强大的搜索,更详尽的结果:index,过程的状态:lastindex

    锚点

    用来匹配一个位置。

    • ^ 表示起始位置
    • $表示结尾位置
    • 表示单词边界

    字符类

    匹配一类字符中的一个

    • [abc] 表示a或b或c
    • [0-9] 表示0到9中的任何一个数字
    • [^0-9] 表示非数字的一个字符,这里的^ 表示非的意思
    • [a-z] 表示a到z中任何一个字母
    • . 表示任何一个字符(换行除外)

    元字符

    具有特殊意义的字符

    • d 等价于[0-9],表示查找数字
    • D 等价于[^d],表示查找非数字
    • s表示查找空白字符,空白符指的不只是按下空格键在屏幕上显示的空格字符,还包括制表符,换行和回车符。
    • S等价于[^s],表示查找非空白字符
    • w等价于[A-Za-z0-9],表示查找单词字符
    • W等价于[^w],表示查找非单词字符

    量词

    表示出现的次数

    • {m,n}表示m到n次
    • * 表示{0,}  即0到任意次
    • ? 表示{0,1} 即0或者1次
    • + 表示{1,...} 即1到任意次

    例子:

    /^1d{10}$/ 表示匹配一个以1开头,一共有11个数字的字符串

    转义符

    需要匹配的字符是特殊字符,所以需要转义一下啦

    例子:

    /@163.com$/ 表示匹配一个以@163.com结束的字符串,其中.是特殊字符,需要转义

    多选分支

    或用|表示

    例子:

    /b(a|e)d/ ===/b[ae]d/ 表示匹配bad或者bed

    /.(png|jpg|gif|jpeg)$/ 表示匹配图片格式

    字符类是一种特殊的多选分支

    捕获

    保存匹配到的字符串,以便日后再用。

    ()表示捕获

    (?:)表示不捕获

    支持正则表达式的 String 对象的方法

     str.match(regexp)

    获取匹配的字符串

    str.replace(regexp/substr,replacement)

    替换与正则表达式匹配的子串。

    btw:

    1. 正则表达式的匹配只做一次,因此需要用到属性g表示全局模式。
    2. 正则表达式中,量词的惰性与贪婪模式的区别?

      

     

  • 相关阅读:
    eclipse快速收缩展开代码
    Java中this关键字在构造方法中的使用
    Java中String的常用方法
    Java中的Comparable<T>和Comparator<T>接口
    Oracle中的自增-序列-SEQUENCE
    Java中的代码块
    Oracle中的约束
    Oracle中对表的操作
    ROWID-Oracle中删除重复行数据
    Selenium简单回顾
  • 原文地址:https://www.cnblogs.com/rosestudy/p/4840787.html
Copyright © 2011-2022 走看看