0 引言
博主看过很多关于正则表达式的学习教程,发现多数有些讲得含糊不清,难以理解,遂写一期博客,清晰的讲一讲正则表达式的那些事儿
1 准备
工欲善其事,必先利其器!准备了一个很好的正则表达式在线测试平台,网址如下:点击查看
2 详解
(1) 常用语法
-
匹配字符
[abcd] #从abcd匹配任意一个字母
[a-zA-Z] #匹配小写a-z以及大写A-Z之间的字母
[0-9] #匹配0-9之间的数字
[^abcd] #匹配不在abcd中其它的字母
\d #匹配数字的另一种写法
\s #匹配空白符(包含空格、制表符、换页符等等)
\t #匹配制表符(\s也可以匹配到)
\w #匹配非特殊字符,即a-z、A-Z、0-9、_、汉字
-
匹配数量
. #匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \.
* #匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*
+ #匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+
? #匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?
{n} #n 是一个非负整数。匹配确定的 n 次
{n,} #n 是一个非负整数。至少匹配n 次
{n,m} #m 和 n 均为非负整数,其中n <= m,最少匹配 n 次且最多匹配 m 次
-
子匹配
() #标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)
-
其它
a* #贪婪模式,会一直向下匹配
a*? #懒惰模式,匹配到第一个符合条件的项就会停止匹配
| #指明两项之间的一个选择。要匹配 |,请使用 \|
^ #匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。要匹配 ^ 字符本身,请使用 \^
$ #匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,请使用 \$
(2) 支持情况
下面给出各种开发软件对正则中的不同语法的支持情况,同学们可以根据所使用的的开发语言选用恰当的语法结构
(3) 具体案例
① 时间戳元素提取
② 软件运行日志(以Nginx日志为例)
3 总结
学到这里,你对正则表达式就应该有了初步的了解。学习是不断积累的事情,学好正则可以更好地处理复杂的字符串,增强编程效率。若有理解有误的地方,请在评论区留言,谢谢!