1.定界符:
//
2.原子:
普通字符作为原子:
普通字符是编写正则表达式时最常见的原子了,包括所有的大小写字母和数字
非打印字符:
1.cx: 匹配由x指明的控制字符:例如:cM匹配一个Control-M或回车符.x的值必须为A~Z或 a-z之一。否则只是一个c字符
2.f : 匹配一个换页符
3. :匹配一个换行符
4. : 匹配一个回车符
5. : 匹配一个制表符
6.v: 匹配一个垂直制表符
使用通用字符类型作为原子:
1.d 表示任意一个十进制的数字
2.D 表示任意一个除了数字之外的字符
3.s 匹配任意一个空的字符
4.S 任意一个非空字符
5.w 任意一个字 [a-zA-Z0-9]
6.W任意一个非字 除了[a-zA-Z0-9]_
自定义一个原子表:
[asdfasdfa]
3.元字符: 元字符是一种特殊的字符,是用来修饰原子用的,不可以单独出现
1.*:匹配0次,1次或多次其前的原子
2.+: 匹配1次或多次其前面的原子
3.?:匹配1次或0次
4..:匹配除了换行符以外的所有字符
5.| 表示或的关系| /a|b/ /cat|dog/
6.{n} 表示前面的原子恰好出现n次
7.{n,}表示其前面的原子不得超过n次
8.{n,m} 前面的原子出现的次数哦n-m次,包括n-m
9.^或A 匹配字符串开始位置 /^one/:表示这个字符串必须以one开头
10.$或 匹配字符串结尾位置 /one$/ 这个字符串必须以one结尾 /^one$/ 匹配one字符串 /^one.*$/ 以one开头以one结尾
11.匹配单词边界
12.B 匹配除单词边界以外的部分
13.[]匹配方括号中任意一个原子
14.[^] 匹配方括号中的原子以外的任意字符
15() 匹配一个整体作为原子,即模式单元。可以理解为由多个单个原子组成的大原子
使用元字符:
1.限定符:
限定符用来指定正则表达式的给定原子必须要出现多少次才能满足。有* + ? {n} {n,} {n,m} 共有六种
/as*b/ ---- -----------a b之间没有空白,有一个或者是多个空白字符
/ad+b/----------------a b 之间 有一个或多个数字 如:a2b a232434b等
/aW?b/----------------a b之间有一个活或没有特殊字符 如:ab a#b a%b
/ax{4}b/-------------- a b之间有四个x的字符串 如: axxxxb
/ax{2,}b/--------------a b 之间有2个以上的x字符串 如: axxxb,axxxxxxb
/ax{2,5}b/-------------a b之间有2个到5个x的字符串 如: axxb axxxxb
2.边界符:
用来限定字符串或单词的边界范围,以获得更准确的匹配结果。
/^this/-----------------匹配以this开始的字符串
/this$/-----------------匹配以this结尾的字符串
/is/----------------字符串中是否含有单词is,,因为在字符串is两边都需要有边界
/Bis/----------------查找is时左边不能有边界而右边必须有边界 如 "this"匹配成功
3.句号.
/a.b/-------------------a b 之间任意字符 如:axb ayb azb 等
4.模式选择符:
/cat|dog/ 不是cat 就是dog
5.模式单元:
模式单元是使用元字符“()” 类似于数学表达式中的()
/(very)*good/ 可以匹配 very good good very very good
6.后向引用:
将其分割成一个一个的子表达式,每一个存入临时缓冲区中,可以被获取并使用
/(very)*good/
模式修正符:
在定界符的最后/使用;
i: 在模式匹配时不区分大小写