对于一个经常编程的人(算不上程序员),正则表达式是一个绕不过去的坎。而往往就是这种看起来比较奇葩用起来又很关键的技术,掌握之后会发现,眼前的视野又宽阔了好多。
正则表达是包括:
- 界定符号
- 原子
- 元字符
- 量词
- 边界控制
- 模式单元
- 模式修正
这么七个大的部分。
1. 界定符
在不同的语言中不一样,主要用来告诉程序语言,这一段奇怪的字符串是一串正则表达式 ,比如 / /, ##等。
2. 原子
原子式正则表达式的最小单元,每一个原子可以匹配最少一个字符,A-z,0-9,这些都属于原子。
3. 元字符
”.“ 表示匹配除换行符之外的所有字符
元字符包含原子筛选和原子集合两种
原子筛选:例如|,[], [^]
其中,|表示或者,[]表示其中的原子至少有一个可以匹配,[^]与[]相反,表示其中的原子一个都不能匹配。
原子集合:
\d表示所有数字,
\D表示除了数字以外的所有字符
\表示匹配数字,字母,下划线,
###4. 量词
{n,m}表示匹配前面的原子n到m次,
{n,}表示最少n次,
{,m}表示匹配前面的原子最多m次,
*表示匹配前面的原子0次或者无穷多次,
+表示匹配前面的原子1次或者无穷多次
?表示匹配前面的原子0次或者1次
###5. 边界控制
如果要匹配nnn,用\w+可以,但是\w+也可以匹配wwww,为了精确匹配,使用边界控制。
^ 表示正则表达式的开始。
$ 表示正则表达式的结束。
###6. 模式单元()
()表示一个模式单元,例如(abc|acb|cba)表示()中的整个的字符是一个原子,要么是abc,要么是acb或者cba,顺序不能变。
###7. 模式修正
模式修正紧跟在正则表达式后面,定界符前面(定界符可以没有),分为贪婪模式和懒惰模式,默认是贪婪模式匹配,切换为懒惰模式只需要在后面加U。
除此之外,还有一些,例如:
i:忽略大小写
s:让元字符.忽略换行符在内的所有字符
m: 将字符串视为多行,不管是哪行都能匹配
10万+

被折叠的 条评论
为什么被折叠?



