《正则表达式必知必会》阅读笔记
最近由于工作需要,再读了一遍《正则表达式必知必会》,这样一本小书,很快读完了,对于正则表达式有更深的了解,的确很强大,值得学习。
总结了一下,结果如下:
正则表达式的两个用途:搜索和替换
. 匹配任何一个单个的字符
[] 字符集合区间
- 连字符
^ 取非匹配
特殊元字符:
[\b] 回退
\f 换页符
\n 换行符
\r 回车符
\t 制表符
\v 垂直制表符
\d 任何一个数字字符 [0-9]
\D [^0-9]
\w [a-zA-Z0-9_]
\W [^a-zA-Z0-9_]
\s [\f\n\r\t\v]
\S [^\f\n\r\t\v]
+ 匹配一个或多个字符
* 匹配零个或多个字符
? 匹配零个或一个字符
{N} 精确匹配出现N次
{N,M} 精确匹配N次到M次
{N,} 至少匹配N次
以上的方法均是贪婪型的,只要在后面加上一个?,变成懒惰型的
界限:
\b 指定单词的边界
\B 指定不是单词的边界
^ 字符串开头
$ 字符串结尾
?m 改变其他元字符行为的元字符序列,必须出现在整个模式的最前面
\n 回溯引用
$1 替换时的回溯引用
?= 向前查找,以?=为开头的子表达式,即最后的内容是否出现在匹配的范围内
?<= 向后查找
?! 负向前查找,向前查找不匹配的
?<! 负向后查找,向后查找不匹配的
正则表达式的条件:
?( backreference)true-regex) , 其中?表明这是一个条件,括号里的 backreference直接使用数字表示,代表只有在backreference存在时才会被执行的子表达式
?(backreference)true-regex|false-regex)
常用正则表达式:
URL地址:
https?://[-\w.]+(:\d+)?(/([\w/_.]*)?)?
完整URL地址:
https?://(\w*:\w*@)?[-\w.]+(:\d+)?(/([\w/_.]*(\?\S+)?)?)?
电子邮件地址:
(\w+\.)*\w+@(\w+\.)+[A-Za-z]+