正则表达式速成宝典
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 总结
学到这里,你对正则表达式就应该有了初步的了解。学习是不断积累的事情,学好正则可以更好地处理复杂的字符串,增强编程效率。若有理解有误的地方,请在评论区留言,谢谢!

浙公网安备 33010602011771号