文章目录

  • 普通字符
  • 特殊字符
  • 修饰符(标记)


普通字符

'+ 前面的字符出现一次或多次

eg:run + b 等价于 runnb,runnnn…b do(es) + 等价于 does,doeseses…

'* 前面的字符0,1多次

? 前面的字符0,1次

. 换行符\n之外的任何单字符

| 两项之间的一个选择

\ 转义符号 eg:* 就是匹配字符* 而不是特殊字符

特殊字符

[ABC]:匹配ABC(顺序无关)

^:取反

[A-Z],[0-9],[a-z] 分别匹配三个区间

\w:匹配字母,数字,下划线 等价于[A-Za-z0-9_]

\d:匹配数字

\n:匹配换行符

\r:匹配回车符

\s:匹配空白字符

\S:匹配非空白字符

{n}:非负整数,匹配确定的n次 eg:o{2} 匹配 food 中的两个o

{n,}:至少匹配n次 o{1,} 等价于o+ o{0,}等价于o*

{n,m}:匹配最少n最多m eg:[0-9]{1,2} 取0-99

[1-9][0-9 匹配一个正整数 前面为了去0,后面*是0.1多次

$:匹配输入字符串的结尾位置

\b:匹配一个单词边界,即字和空格间的位置 eg:\bCha 或者 /ter\b/ 前面是从单词的开始处查找匹配项,后面是结尾处查找匹配项

\B:非单词边界匹配 eg:\Bapt 能匹配Chapter 中的字符串 apt,但不匹配 aptitude 中的字符串 apt 应该是前者的三个字母出现在非单词边界处

():标记子表达式的开始和结束位置

eg: 123456runoob123runoob456 ([1-9])([a-z]+):匹配一个数字开头,多个字母结尾,此时匹配出来的是6runoob和3runoob

exp1(?=exp2):查找 exp2 前面的 exp1。 eg:runoob(?=[\d+]) 匹配出来的就是例子中123456后面的runoob

(?<=exp2)exp1:查找 exp2 后面的 exp1。eg:(?<=[\d+]runoob) 匹配出来的就是456前面的runnoob

修饰符(标记)

var str=“Google runoob taobao runoob”;

var n1=str.match(/runoob/); // 查找第一次匹配项

var n2=str.match(/runoob/g); // 查找所有匹配项

var n3=str.match(/runoob/gi); // 查找所有匹配项且不区分大小写

var n4=str.match(/runoob/gm); // 多行匹配

更多推荐

正则表达式(菜鸟教程)