正则表达式学习
正则表达式学习
- 限定符,限定符跟在字符的后面,表示前面一个字符的限制,常用的限定符有3个,分别是
?
和*
和+
?
表示出现0-1次
*
匹配0次或多次
+
匹配1次以上
同时,使用花括号表示出现范围:
多个字符的重复,使用圆括号括起来
- 正则表达式的或,使用竖线
|
隔开
注意一下这个的括号如果去掉,意思就变了
- 字符类
方括号表示,限定匹配方括号中的内容
向上的尖括号^
表示非
- 元字符
正则表达式中的大多数元字符以反斜杠开始,元字符是预定义好的
\d
表示数字
\w
表示单词字符(英文、数字及下划线)
\s
表示空白符(包含Tab和换行符)
\D
表示非数字字符
\W
表示非单词字符
\S
表示非空白字符
.
表示除换行符之外的任意字符
^
匹配行首$
匹配行尾
贪婪匹配和懒惰匹配:默认匹配是贪婪的,但是想要懒惰匹配的话,可以使用?
匹配IPV4的案例:
前置约束和后置约束:
首先说一下,这里很容易弄混,总共有四个,分别是
?=
:前置约束,意思是我要前面匹配上的东西,但是要加个约束,约束放在后面
?!
:前置排除,意思是我要前面匹配上的东西,但是后面约束中的不要
?<=
:后置约束,意思是我要后面匹配上的东西,但是前面要有个约束
?<!
:后置排除,意思是我要后面匹配上的东西,但是前面约束中的不要
来看具体的:
前置约束,这里要匹配The
或者the
,但是后面接空格+fat
前置排除,这里要匹配The
或者the
,但是后面不能有空格+fat
后置约束:
后置排除: