正则表达式基本字符:
1. 原义文本字符:
就是代表本来含义的字符,abc123,写a就是匹配a,写3就是匹配3.
2.元字符:
在正则表达式中有特殊含义的字符.如:/b,是表示匹配单词边界而不是匹配一个/和一个b
字符类:
一般情况下正则表达式一个字符对应字符串一个字符,如:表达式 ab\t 的含义就是匹配”ab”和一个水平制表符
但当我们想匹配一类字符(如想匹配abc)的时候就需要用到元字符 [] 来构建一个简单的类,如:[abc]把字符a,b,c归为一类,表达式可以匹配这类字符.
字符类取反:
使用元字符^ 创建反向类
反向类的意思就是不属于这个类的内容,如:表达式[^abc]表示不是a或者b或者c的内容.
范围类:
[a-z]来连接两个字符表示从 a 到 z 的任意字符
这是个闭区间,也就是包含 a 和 z 本身
在[]组成的类内部是可以连写的 [a-zA-Z],如果想在[]内匹配 - 则在连接范围后添加-就可以,如[A-Z-]
预定义字符:
. : 等价[^\r\n] 除了回车符和换行符的字符
\d : 等价[0-9] 数字字符
\D : 等价[^0-9] 非数字字符
\s : 等价[\t\n\x0B\f\r] 空白符
\S : 等价[^\t\n\x0B\f\r] 非空白符
\w : 等价[a-zA-Z_0-9] 字母数字下划线
\W : 等价[a-zA-Z_0-9] 非字母数字下划线
边界
^ : 以xxxx开始
$ : 以xxxx结束
\b : 单词边界
\B : 非单词边界
量词
? : 出现0次或一次
+ : 出现一次或多次
* : 出现0次或多次
{n} : 出现n次
{n,m}: 出现n到m次
{n,} : 至少出现n次
贪婪模式与非贪婪模式
对字符串”12345678” 用\d{3,6}匹配则会匹配到”123456”(这就是贪婪模式),
而用\d{3,6}就匹配到”123”“456”(这就是非贪婪模式)
分组
使用( ) 可以达到分组的功能,使量词作用于分组,如:对”a1b2c3d4”用([a-z]\d){3}则能匹配到,而且可以用$1获取第一个()内的匹配的内容
忽略分组,不希望捕获分组,只需要在分组内加上?:就可以了,如(?:\d)
或
- 使用 | 达到这样的效果
4318

被折叠的 条评论
为什么被折叠?



