正则表达式

元字符
\ 转义符
 . 匹配除换行符以外的任意字符
\w 匹配字母、数字、下划线或汉字字符,[0-9a-zA-Z_]
\s 匹配任意空白符,[\t\v\n\r\f],包括空格、水平制表符、垂直制表符、换行符、回车符、换页符
\d 匹配任意数字,[0-9]表一位数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
反义
\W 匹配任意不是字母、数字、下划线或汉字字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除x以外的任意字符
[^abc] 匹配除abc这几个字母以外的任意字符
重复限定符
* 重复零次次或更多次
+ 重复一次或更多次
重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次

 

要点:

1、分组:正则表达式用小括号()做分组,即括号中的内容作为一个整体(例6)。

2、* 限定符作用于它最左边最近的一个字符(多个可以用小括号分组)(例5、6)。

3、转义:把元字符、限定符或关键字转义成普通字符就是在要转义的字符前添加斜杠“\”,如匹配字符串本身就有小括号(例7)。

4、条件或:“|”表示正则表达式的或,也叫分支,当满足正则表达式分支条件的任何一种条件,都会当成匹配成功(例8,方式一)。

5、区间:“[]”表示正则表达式的区间条件,限定0到9: [0-9],限定A-Z:[A-Z],限定某些数字:[124](例8,方式二)。

 

示例:

1、匹配有abc开头的字符串:/babc 或者 ^abc

2、匹配8位数字的QQ号:^\d\d\d\d\d\d\d\d$  ——> ^\d{8}$

3、匹配以1开头11位数字的手机号码:^1/d/d/d/d/d/d/d/d/d/d$ ——> ^1\d{10}$

4、匹配14~18位数字:^\d{14, 18}$

5、匹配以a开头,0或多个b结尾的字符串:^ab*$

6、匹配0到多个ab开头的字符串:^(ab)*

7、匹配以(ab)开头:^(\(ab\))$

8、匹配联通130/131/132/155/156/185/186/145/176等号段号码:
      方式1:^(130 | 131 | 132 | 155 | 156 | 185 | 186 | 145 | 176)\d{8}$
      方式2:^( (13[0-2]) | (15[56]) | (18[5-6) | 145 | 176 )\d{8}$

 

 参考:

  1、https://www.zhihu.com/question/48219401/answer/742444326

  2、https://tool.oschina.net/uploads/apidocs/jquery/regexp.html

posted @ 2021-06-01 11:11  し7709  阅读(67)  评论(0编辑  收藏  举报