首页 > 技术文章 > Js 正则表达式特殊字符含义

lucybloguniquecom 2015-11-23 15:31 原文

字符   匹配

\o     null

\t      制表符

\n     换行符

\v     垂直制表符

\f     换页符

\r     回车符

\xnn   由十六进制nn指定的拉丁字符 如\xoA等价于\n

\uxxx  有十六进制数xxxx指定的Unicode字符,如\u00009等价于\t

\cX    控制字符^X,如\cJ等价于\n

[…]    方括号内的任意字符

[^…]   不在方括号内的任意字符

.      出换行符和其他Unicode行终止符之外的任意字符

\w     任何ASCII字符组成的单词 等价于[a-zA-Z0-9]

\W     任何非ASCII字符组成的单词 等价于[^a-zA-Z0-9]

\s     任何Unicode空白符

\S      任何非Unicode空白符

\d     任何ASCII数字 等价于[0-9]

\D     除了ASCII数字之外的任何字符 等价于[^0-9]

{n,m}  匹配前一项至少n次,但不能超过m次

{n, }  匹配前一项n次或更多次

{n }   匹配前一项n次

?      匹配前一项0次或1次 等价于{0,1}

+      匹配前一项1次或多次 等价于{1,}

*      匹配前一项0次或多次 等价于{0,}

|      选择,匹配的是该符号左边的子表达式或右边的子表达式

(…)    组合,将几个项组合为一个单元,这个单元可通过*,+,?,|等符号加以修饰,而且可以记住和这个组合相匹配的字符串以供此后的引用使用

(?:…)  只组合,把项组合到一个单元,但不记忆与该组相匹配的字符

\n     和第n个分组第一次匹配的字符相匹配,组是圆括号中的子表达式(也有可能是嵌套的),组索引是从左到右的左括号数,(?:形式的分组不编码

^      匹配字符串的开头,在多行检索中,匹配一行的开头

$      匹配字符串的结尾,在多行检索中,匹配一行的结尾

\b     匹配一个单词的边界,简言之,就是位于字符\w和\W之间的位置,或位于字符\w和字符串的开头或结尾之间的位置(注意:[\b]匹配的是退格符)

\B     匹配一个非单词的边界的位置

(?=p)  零宽正向先行断言,要求接下来的字符都与p匹配,但不能包括匹配p的那些字符

(?!p)  零宽正向先行断言,要求接下来的字符都与不p匹配

 

修饰符

 i g m 是放在“/”符号之外的,也就是说,他们不是出现在两条斜线之间,而是第二条斜线之后

i:执行不区分大小写的匹配

g:执行一个全局匹配,简言之,即找到所有的匹配,而不是在找到第一个之后就停止

m:多行匹配模式,^匹配一行的开头和字符串的开头,$匹配行的结束和字符串的结束

 

用于模式匹配的string方法:

Search(regx):返回第一个与之匹配的子串的起始位置,如果找不到匹配的子串,返回-1

Replace(regx,replacestr):检索和替换

Match(regx):返回的是一个有匹配结果组成的数组

Split(regx):返回的是分割后的数组

推荐阅读