Javascript正则表达式的语法规则
一、元字符
| 元字符 | 对应说明 | 
|---|---|
| . | 匹配除换行符之外的任意字符 | 
| \w | 匹配字母数字下划线,等同于:[a-zA-Z0-9_] | 
| \s | 匹配任意空白符 | 
| \d | 匹配数字,等同于[0-9] | 
| \b | 匹配单词边界 | 
| | | 或匹配,如 /x|y/ 正则可匹配x或y两个字符 | 
| ^ | 匹配字符串的开始 | 
| $ | 匹配字符串的结束 | 
二、反义字符
| 反义字符 | 对应说明 | 
|---|---|
| [^x] | 匹配除“x”之外的所有字符,其中“x”可以为任意字符 | 
| [^xyz] | 同上,匹配除“x、y、z”之外的任意字符 | 
| \W | 匹配除了字母、数字、下划线之外的所有字符,等同于:[^\w] | 
| \S | 匹配除空白符之外的任意字符,等同于:[^\s] | 
| \B | 匹配不是单词边界的字符,等同于:[^\b] | 
| \D | 匹配不是数字的所有字符,等同于:[^\d] | 
三、转义字符
| 转义字符 | 对应说明 | 
|---|---|
| \xnn | 匹配十六进制数 | 
| \f | 匹配换页符,等同于:\x0c | 
| \n | 匹配换行符,等同于:\x0a | 
| \r | 匹配回车符,等同于:\x0d | 
| \t | 匹配水平制表符,等同于:\x09 | 
| \v | 匹配垂直制表符,等同于:\x0b | 
| \unnnn | 匹配Unicode字符,如:\u00A0 | 
四、重复匹配
| 匹配字符 | 对应说明 | 
|---|---|
| * | 重复出现零次或多次 | 
| + | 重复出现一次或多次 | 
| ? | 重复出现零次或一次 | 
| {n} | 重复出现n次 | 
| {n,} | 至少重复出现n次 | 
| {m,n} | 重复重现m到n次,其中,m<n | 
五、分组/捕获
| 分组字符 | 对应说明 | 
|---|---|
| (exp) | 用小圆括号进行分组,如日期中年月日的分组:/(\d{5})-(\d{1,2})-(\d{1,2})/ 每个分组将产生分组号,从第一个括号开始,可以使用\n的形式在正则中使用分组号, 如匹配成对出现的HTML标签,可以写成:/<(\w+)><\/\1>/ | 
| (?:exp) | 匹配exp正则,但不产生分组号 | 
| exp1(?=exp2) | 前瞻断言,匹配exp1,但后面必须是exp2 如匹配名字叫xianlie,但不姓zhao的人:/zhao(?=xianlie)/ | 
| exp1(?!=exp2) | 后瞻断言,匹配exp1,但后面不能是exp2 如匹配姓zhao,但名字不叫xianlie的人:/zhao(?!xianlie)/ | 
六、贪婪与惰性
| 相关字符 | 对应说明 | 
|---|---|
| *? | 重复任意次,但尽可能少的重复 | 
| +? | 重复一次或多次,但尽可能少的重复 | 
| ?? | 重复零次或一次,但尽可能少的重复 | 
| {m,n}? | 重复m到n次,但尽可能少的重复 | 
| {n,}? | 重复n次以上,但尽可能少的重复 | 
| {n}? | 重复n次,但尽可能少的重复 | 
七、修饰符
| 修饰符 | 对应说明 | 
|---|---|
| i | ignoreCase的缩写,表示忽略字母的大小写 | 
| m | multiline的缩写,更改^和$的含义,使它们分别在任意一行的行首和行尾匹配 ,而不仅仅在整个字符串的开头和结尾匹配。 (在此模式下,$的精确含意是:匹配\n之前的位置以及字符串结束前的位置.) | 
| g | global的缩写,进行全局匹配,即对字符串进行全文匹配,直到字符串遍历结束 | 
本文来自博客园,作者:JackieDYH,转载请注明原文链接:https://www.cnblogs.com/JackieDYH/p/17634671.html

 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号