正则表达式(Regular Expression)是指一种字符串匹配的模式(pattern),可以用来检查一个字符串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串,在当下的脚本语言中应用较为广泛的一种字符查找模式。

正则表达中特殊字符:

字符描述
$匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n’ 或 ‘\r’。要匹配 $ 字符本身,请使用 \$。
( )标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。
*匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。
+匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。
.匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \. 。
[标记一个中括号表达式的开始。要匹配 [,请使用 \[。
?匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。
\将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, ‘n’ 匹配字符 ‘n’。’\n’ 匹配换行符。序列 ‘\\’ 匹配 “\”,而 ‘\(‘ 则匹配 “(“。
^匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。要匹配 ^ 字符本身,请使用 \^。
{标记限定符表达式的开始。要匹配 {,请使用 \{。
|指明两项之间的一个选择。要匹配 |,请使用 \|。

一些常用的匹配模式:

匹配中文:[\u4e00-\u9fa5]

匹配邮箱:\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+.)+[A-Za-z]{2,14}

匹配网址:[a-zA-z]+://[^\s]*

匹配国内手机号:0?(13|14|15|17|18|19)[0-9]{9}

匹配固定电话:[0-9-()()]{7,18}

匹配整数:-?[1-9]\d*

匹配IP地址:(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d).(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d).(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d).(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)

匹配身份证:\d{17}[\d|x]|\d{15}

匹配格式日期:\d{17}[\d|x]|\d{15}

关于正则表达式的在线验证工作也多如牛毛,下面汇总了一部分供大家测试。

1)https://tool.lu/regex/

2)https://www.googlespeed.cn/reg/

3)https://tool.oschina.net/regex/

4)https://www.debuggex.com/

5)https://regex101.com/

6)https://www.regextester.com/

7)https://regexr.com/

8)https://rubular.com/

9)https://pythex.org/

最后,学好正则表达式会让你事半功倍!

参考资料:

1.https://www.runoob.com/regexp/regexp-intro.html