简例:
引用:using System.Text.RegularExpressions;
输出:
正则表达式语法简述:
正则表达式包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。
若要匹配这些特殊字符之一,必须首先转义字符,即,在字符前面加反斜杠字符 (/)。 例如,若要搜索“+”文本字符,可使用表达式“/+”。
标记次数:
*:零次或多次(匹配次数>=0)
+:一次或多次(匹配次数>=1)
?:零次或一次(匹配次数=0 or 1)
注:当 ? 紧随任何其他限定符(*、+、?、{n}、{n,} 或 {n,m})之后时,匹配模式是非贪婪的。
非贪婪模式匹配搜索到的、尽可能少的字符串
而默认的贪婪模式匹配搜索到的、尽可能多的字符串。
{n}:匹配n次
{n,}:至少匹配n次
{n,m}:至少匹配n次,最多匹配m次。
标记位置:
^:开始(/n或/r后的位置)
$:结束(/n或/r前的位置)
/b:匹配边界(字与空白)
/B:匹配非边界(非字与空白)
其他特殊字符:
|:指示在两个或多个项之间进行选择。
字符匹配:
.:除换行符 /n 之外的任何单个字符
/f :换页符
/n:换行符
/r:回车符
/t:Tab字符
/v:垂直制表符
/s:任何空白字符。 其中包括空格、制表符和换页符。
/S:任何非空白字符。
/d:数字字符匹配
/D:非数字字符匹配
/w:与以下任意字符匹配:A-Z、a-z、0-9 和下划线
/W:与除 A-Z、a-z、0-9 和下划线以外的任意字符匹配
[xyz]:字符集。 与任何一个指定字符匹配
[^xyz]:反向字符集。 与未指定的任何字符匹配
注:对比^和[^xyz],前者为开始的标记,后者表示反向
[a-z]:字符范围。 匹配指定范围内的任何字符
[^a-z]:反向字符范围。 与不在指定范围内的任何字符匹配
(模式):保存匹配项,
(?:模式): 不保存匹配项,
(?=模式): 不保存匹配项,匹配模式(匹配xxx)
(?!模式) :不保存匹配项,不匹配模式(匹配除xxx之外)
/cx:匹配x指示的控制字符,譬如组合键Ctrl+M
/xn:匹配一个十六进制转义码,譬如/x41匹配的是A
/num:对已保存匹配项的引用,譬如(a)/1匹配aa,(a)/1/1匹配aaa,(a)/1(b)/2/2匹配ababb
限定符:*、+、?、{n}、{n,} 或 {n,m}
正则表达式=组合( 匹配字符串表达式, 限定符)
记录:
[a-z][1-9]{0,1} = [a-z]([1-9]{0,1})
不明白批注:
积极/消极的预测先行
/nm
/nml
/un