正则表达式(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