正则表达式

1 普通字符

字符描述
[ABC]匹配ABC中的一个字符
[^ABC]匹配不是ABC中的一个字符
[A-Z]匹配A-Z中的一个字符
[\s]\s 是匹配所有空白符,包括换行,一个字符
[\S]\S 是匹配所有非空白符,不包括换行,一个字符
[\w]匹配字母、数字、下划线。等价于 [A-Za-z0-9_],一个字符
[\d]匹配数字,一个字符

2 非打印字符

字符描述
\f换页符
\n换行符
\r回车符
\t制表符
\v垂直制表符

3 特殊字符

字符描述
^匹配输入字符串的开始位置
$匹配输入字符串的结束位置。 例:/^a[\d]+b$/ 能匹配 a123b;
\b匹配一个单词边界,即字与空格间的位置。例: /Cha\b/ 能匹配 bbCha;/\bCha/ 能匹配 Chabb;
\B非单词边界匹配。
()标记一个子表达式的开始和结束位置
[]标记一个中括号表达式的开始和结束位置
l指明两项之间的一个选择,相当于或运算

4 限定符

字符描述
*匹配前面的子表达式零次或多次。例如,zo* 能匹配 “z” 以及 “zoo”。* 等价于{0,}。
+匹配前面的子表达式一次或多次。例如,‘zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ 等价于 {1,}。
?匹配前面的子表达式零次或一次。例如,“do(es)?” 可以匹配 “do” 、 “does” 中的 “does” 、 “doxy” 中的 “do” 。? 等价于 {0,1}。
{n}n 是一个非负整数。匹配确定的 n 次。例如,‘o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 “food” 中的两个 o。
{n,}n 是一个非负整数。至少匹配n 次。例如,‘o{2,}’ 不能匹配 “Bob” 中的 ‘o’,但能匹配 “foooood” 中的所有 o。‘o{1,}’ 等价于 ‘o+’。‘o{0,}’ 则等价于 ‘o*’。
{n,m}m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,“o{1,3}” 将匹配 “fooooood” 中的前三个 o。

5 修饰符

字符描述
iignore - 不区分大小写
gglobal - 全局匹配
mmulti line - 多行匹配
s特殊字符圆点 . 中包含换行符 \n

示例:

// 修饰符 i
var str="Google runoob taobao RUNoob"; 
var n1=str.match(/runoob/g);  // 区分大小写   runoob
var n2=str.match(/runoob/gi); // 不区分大小写 runoob,RUNoob

// 修饰符 g
var str="Google runoob taobao runoob"; 
var n1=str.match(/runoob/);  // 查找第一次匹配项  runoob
var n2=str.match(/runoob/g); // 查找所有匹配项    runoob,runoob

// 修饰符 m
var str="runoobgoogle\ntaobao\nrunoobweibo";
var n1=str.match(/^runoob/g);   // 匹配一个  runoob
var n2=str.match(/^runoob/gm);  // 多行匹配  runoob,runoob

// 修饰符 s
var str="google\nrunoob\ntaobao";
var n1=str.match(/google./);   // 不使用 s,无法匹配\n  google
var n2=str.match(/runoob./s);  // 使用 s,匹配\n     runoob

6 其他示例

/gr[ae]y/	         // 匹配 {gray, grey}
/b[aeiou]bble/  	 // 匹配 {babble, bebble, bibble, bobble, bubble}
/[b-chm-pP]at|ot/	 // 匹配 {bat, cat, hat, mat, nat, oat, pat, Pat, ot}
/colou?r/            //	匹配 {color, colour}
/rege(x(es)?|xps?)/  // 匹配 {regex, regexes, regexp, regexps}
/go*gle/             // 匹配 {ggle, gogle, google, gooogle, goooogle, ...}
/go+gle/	         // 匹配 {gogle, google, gooogle, goooogle, ...}
/g(oog)+le/      	 // 匹配 {google, googoogle, googoogoogle, googoogoogoogle, ...}
/z{3}/	             // 匹配 {zzz}
/z{3,6}/	         // 匹配 {zzz, zzzz, zzzzz, zzzzzz}
/[Bb]rainf\*\*k/	 // 匹配 {Brainf**k, brainf**k}
/\d/	             // 匹配 {0,1,2,3,4,5,6,7,8,9}
/1\d{10}/	         // 匹配 11 个数字,以 1 开头
/\d+(\.\d\d)?/	// 包含一个正整数或包含两位小数位的浮点数。
/[^*@#]/ 	    // 排除 *、@ 、# 三个特色符号
/^dog/      	// 匹配以 "dog" 开始
/dog$/      	// 匹配以 "dog" 结尾
/^dog$/	        // is exactly "dog"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值