文章目录
- 普通字符
- 特殊字符
- 修饰符(标记)
普通字符
'+ 前面的字符出现一次或多次
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); // 多行匹配
更多推荐
正则表达式(菜鸟教程)
发布评论