正则断言 - 匹配表达式前后以或不以指定字符开头或结尾的内容
零宽断言 - 能匹配表达式
(?=exp) 零宽度正预测先行断言,断言自身出现的位置的后面,【能匹配】表达式exp
(?<=exp) 零宽度正回顾后发断言,断言自身出现的位置的前面,【能匹配】表达式exp
负向零宽断言 - 不能匹配表达式
(?!exp) 零宽度负预测先行断言,断言此位置的后面,【不能匹配】表达式exp
(?<!exp) 零宽度负回顾后发断言,断言此位置的前面,【不能匹配】表达式exp
示例文本:
111.jpg
222.png
333.gif
444.html
555.htm
.+(?=(\.jpg)$) 匹配以 jpg 结尾的内容
^\d.+(?<!\.jpg)$ 匹配非 jpg 结尾的内容
(?<=111).+ 匹配 111 开头的内容
\d+(?!\.jpg) 匹配非 jpg 结尾的内容
^http.+(?<!.html)$ 匹配不以 .html 结尾的地址
示例文本:
https://www.xxxx.com
https://www.xxxx.com/aaa
https://www.xxxx.com/bbb/1.html
https://www.xxxx.com/ccc/10.html
其他:
\w 匹配 字母和数字,等同于 [a-zA-Z0-9]。
\b 是正则表达式规定的一个特殊代码,代表着单词的开头或结尾,也就是单词的分界处。虽然通常英文的单词是由空格,标点符号或者换行来分隔的,但是 \b 并不匹配这些单词分隔字符中的任何一个,它只匹配一个位置。
\b\w+\b 匹配所有单词,不包含空格
Love is composed of a single soul inhabiting two bodies.