正则表达式速成宝典
0 引⾔
博主看过很多关于正则表达式的学习教程,发现多数有些讲得含糊不清,难以理解,遂写⼀期博客,清晰的讲⼀讲正则表达式的那些事⼉regex匹配
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 总结
学到这⾥,你对正则表达式就应该有了初步的了解。学习是不断积累的事情,学好正则可以更好地处理复杂的字符串,增强编程效率。若有理解有误的地⽅,请在评论区留⾔,谢谢!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论