基础字符、转义字符与定位字符
代码 | 说明 |
---|
. | 匹配除换行符(\n)以外的任意字符 |
\w | 匹配字母(a-z,A-Z)、数字(0-9)、下划线(_)、汉字 |
\W | 匹配任意不是字母、数字、下划线、汉字的字符 |
\s | 匹配任意的空白符(等价于[ \f\n\r\t\v]) |
\S | 匹配任意不是空白符的字符(等价于[^ \f\n\r\t\v]) |
\d | 匹配数字([0-9]) |
\D | 匹配任意非数字的字符([^0-9]) |
[abc] | 匹配a、b、c任何一个 |
[^abc] | 匹配除了a、b、c以外的任意字符 |
[a-z] | 匹配所有小写字母 |
[^a-z] | 匹配非所有小写字母 |
[a-z0-9A-Z] | 匹配所有字母和数字 |
[^a-z0-9A-Z] | 匹配所有不是字母和数字的字符 |
[set1-[set2]] | 字符减法表达式(比如:[a-z-[mnx]],表除mnx外的所有小写字母),set可以是正字符组或负字符组 |
\f | 换页符(Form feed) |
\n | 换行符(Newline) |
\r | 回车符(Return) |
\t | 制表符(Tab) |
\v | 垂直制表符(Vertical return) |
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
*? | 重复零次或更多次,但尽可能少重复 |
+? | 重复一次或更多次,但尽可能少重复 |
?? | 重复零次或一次,但尽可能少重复 |
{n,}? | 重复n次或更多次,但尽可能少重复 |
{n,m}? | 重复n到m次,但尽可能少重复 |
\A | 匹配必须出现在字符串的开头(输入:a88 b99 c666,则\w+匹配三组,\A\w+则只匹配a88,\w+\Z则只匹配c666) |
\Z | 匹配必须出现在字符串的末尾或出现在字符串末尾的 \n 之前 |
\z | 匹配必须出现在字符串的末尾 |
\G | 匹配必须在上一个匹配结束的位置进行;如果以前没有匹配项,则从开始进行匹配的字符串中的位置开始。 |
\b | 匹配必须出现在 \w 和 \W 字符之间的边界上,如果用在中括号[\b]中,则表示Backspace退格键字符。 |
\B | 匹配不得出现在 \b 边界上 |
^ | 默认情况下,必须从字符串的开头开始匹配;在多行模式中,必须从该行的开头开始。 |
$ | 默认情况下,匹配必须出现在字符串的末尾,或者出现在输入字符串末尾的 \n 之前。 |
替换结构
代码 | 说明 |
---|
$number | 替换按组 number匹配的子字符串。 |
${name} | 替换按命名组 name匹配的子字符串。 |
$$ | 替换字符"$" |
$& | 替换整个匹配项的一个副本。 |
$` | 替换匹配前的输入字符串的所有文本。 |
$’ | 替换匹配后的输入字符串的所有文本 |
$_ | 替换整个输入字符串。 |
分组结构
代码 | 说明 |
---|
(subexpression) | 编号组,同一正则表达式中可以用\1 ,\2 ,…来依次引用,用$1 ,$2 ,…来替换 |
(?<name>subexpression) | 命名组,同一正则表达式中可以用\k<name> 来引用 ,替换结构中使用${name} 来替换 |
(?'name'subexpression) | 命名组,同一正则表达式中可以用\k<name> 来引用 ,替换结构中使用${name} 来替换 |
(?:subexpression) | 非捕获组,避免分组被捕获 |
(?>subexpression) | 原子组(原子组不回溯,合理使用可以提升正则表达式执行引擎的性能。) |
(?<=subexpression) | 前面有什么(对于输入a,b,c ,模式(?<=,)\w )可以匹配b 和c ,因为a 前面没有逗号 |
(?<!subexpression) | 前面没什么(对于输入a,b,c ,模式(?<!,)\w )可以匹配a ,因为b 和c 前面有逗号 |
(?=subexpression) | 后面有什么(对于输入a,b,c ,模式\w(?=,) )可以匹配a 和b ,因为c 后面没有逗号 |
(?!subexpression) | 后面没什么(对于输入a,b,c ,模式\w(?!,) )可以匹配c ,因为a 和b 后面有逗号 |
either/or结构
格式:exp1|exp2
示例:(i|you) love (high|short) man
注意:[]
只能取单个字符,|
能取多个字符。
条件匹配的表达式
格式:(?(expression)yes)
或(?(expression)yes|no)