该文接正则表达式学习笔记(一)
6.反义
所谓的反义就是查找不属于某个给定范围的字符。、
常用的反义代码
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符
7.向后引用
用于匹配于正则表达式匹配的先前的部分,比图使用小括号指定一个子表达式后,匹配这个子表达式的文本,并且可以在表达式或其它程序中作进一步的处理。
8.零宽断言
所谓的断言是用来声明一个应该为真的情况。正则表达式中只有当断言为真时才会继续进行匹配。而零宽断言用于查找在某些内容(不包括这些内容)之前或之后的东西,也就是说它们像\b,^,$那样用于指定一个位置,这个位置应该满足一定的条件(即断言)。
零宽断言有以下几种形式:
零宽度正预测先行断言:
(?=exp)
断言自身出现的位置的后面能匹配表达式exp
零宽度正回顾后发断言:
(?<=exp)
断言自身出现的位置的前面能匹配表达式exp。
9.负向零宽断言
用于确定某个字符没有出现(并不匹配该字符本身)形如:(?!exp),断言此位置的后面不能匹配表达式exp。
10.注释
可以通过这样的方式包含注释:
(?#comment)
11.贪婪匹配
当正则表达式中包含能接受重复的限定符时匹配尽可能多的字符。
例如:
a.*b,它将会匹配最长的以a开始,以b结束的字符串。如果用它来搜索aabab的话,它会匹配整个字符串aabab。这被称为贪婪匹配。
12.懒惰匹配
当正则表达式中包含能接受重复的限定符时匹配尽可能少的字符。只要在限定符后面加上一个问号?就可以转化为懒惰匹配模式。
比如:
.*?
表示匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复。
以上的学习笔记记录的是正则表达式的一些基本的概念以及用法。尽管在不同的环境下正则表达式都会有不同的用法以及特殊的功能,实现方法也有所不同,但是基本语法还是有很大的相似性,所以这篇笔记也能够帮助自己在以后的学习中触类旁通。