正则表达式 学习笔记
1、环视(Look around)
环视结构不匹配任何字符,只匹配文本中的特定的位置;环视不会“占用”字符。
环视的类型有:
2、固化(atomic)分组
(?>......)
在固化分组中,它永远也不会“归还”已经匹配的任何内容
3、占有优先量词
?+......
*+......
++......
{m,n}+
4、匹配优先量词
*......
+......
?......
{num,num}
这些量词都是“匹配优先”(Greedy,类似于算法中的一种贪心算法)的,匹配尽可能多的内容。
5、忽略量词优先
*?......
+?......
??......
{num,num}??.....
一旦匹配某些内容,就不会“归还”
这些忽略的优先量词会匹配尽可能少的内容。
6、仅用于分组的括号 —— 非捕获型括号
(?:......)
捕获型括号:(......)与\1, \2, ...
7、命令捕获
(?<Name>......)
make by 梦书
环视结构不匹配任何字符,只匹配文本中的特定的位置;环视不会“占用”字符。
环视的类型有:
类型 | 正则表达式 | 匹配成功的条件 |
肯定顺序环视 | (?=......) | 子表达式能够匹配右侧文本 |
肯定逆序环视 | (?<=......) | 子表达式能够匹配左侧文本 |
否定顺序环视 | (?!......) | 子表达式不能匹配右侧文本 |
否定逆序环视 | (?<!......) | 子表达式不能匹配左侧文本 |
2、固化(atomic)分组
(?>......)
在固化分组中,它永远也不会“归还”已经匹配的任何内容
3、占有优先量词
?+......
*+......
++......
{m,n}+
4、匹配优先量词
*......
+......
?......
{num,num}
这些量词都是“匹配优先”(Greedy,类似于算法中的一种贪心算法)的,匹配尽可能多的内容。
5、忽略量词优先
*?......
+?......
??......
{num,num}??.....
一旦匹配某些内容,就不会“归还”
这些忽略的优先量词会匹配尽可能少的内容。
6、仅用于分组的括号 —— 非捕获型括号
(?:......)
捕获型括号:(......)与\1, \2, ...
7、命令捕获
(?<Name>......)
make by 梦书