原创

正则表达式速成宝典

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 总结

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

正文到此结束
本文目录