1 运算符
“表达式”属性支持以下正则表达式运算符:
表达式 |
说明 |
. |
指示任何字符。 |
|
指示后面的字符应按原义而不是作为特殊字符进行解释。例如,. 指示“.”。 |
() |
将括号内的运算符分组。 |
{n} |
生成前面项的 n 个实例。例如,a{2} 生成“aa”。 |
{n,m} |
生成前面项的至少 n 个实例但不超过 m 个实例。例如,a{2,4} 生成“aa”、“aaa”或“aaaa”。 |
|
生成前面项的 n 个或更多实例。例如,a{2,} 生成“aa”、“aaa”、“aaaa”、“aaaaa”等。 |
* |
生成前面项的 0 个或多个实例。 |
+ |
生成前面项的 1 个或多个实例。 |
? |
生成前面项的 0 个或 1 个实例。 |
| |
在 | 字符任一侧生成项。 |
[aeiou] |
生成括号内的任何字符。 |
[a-z] |
生成字符指定范围内的任何字符。 |
[^aeiou] |
生成除括号内字符以外的任何字符。 |
2 数量限定符
限定符将可选数量的数据添加到正则表达式。限定符表达式应用于紧挨着它前面的字符、组或字符类。.NET Framework 正则表达式支持最小匹配 (lazy) 限定符。
下表描述了影响匹配的元字符。数量 n 和 m 是整数常数。
限定符 |
说明 |
* |
指定零个或更多个匹配;例如 w* 或 (abc)*。等效于 {0,}。 |
+ |
指定一个或多个匹配;例如 w+ 或 (abc)+。等效于 {1,102); font-size:14px"> ? |
指定零个或一个匹配;例如 w? 或 (abc)?。等效于 {0,1}。 |
{n} |
指定恰好n个匹配;例如 (pizza){2}。 |
{n,} |
指定至少n个匹配;例如 (abc){2,102); font-size:14px"> m} |
指定至少 n 个但不多于 m 个匹配。 |
*? |
指定尽可能少地使用重复的第一个匹配(等效于 lazy *)。 |
+? |
指定尽可能少地使用重复但至少使用一次(等效于 lazy +)。 |
?? |
指定使用零次重复(如有可能)或一次重复 (lazy ?)。 |
{n}? |
等效于 {n} (lazy {n})。 |
|
指定尽可能少地使用重复但至少使用n次 (lazy {n,})。 |
m}? |
指定介于n次和m次之间、尽可能少地使用重复 (lazy {n,m})。 |
3 字符转义
下表中列出的字符转义在正则表达式和替换模式中都会被识别。
转义符
一般字符 |
除 . $ ^ { [ ( | ) * + ? 外,其他字符与自身匹配。 |
a |
与响铃(警报)u0007 匹配。 |
b |
如果在 [] 字符类中,则与退格符 u0008 匹配;如果不是这种情况,请参见本表后面的“注意”部分。 |
t |
与 Tab 符 u0009 匹配。 |
r |
与回车符 u000D 匹配。 |
v |
与垂直 Tab 符 u000B 匹配。 |
f |
与换页符 u000C 匹配。 |
n |
与换行符 u000A 匹配。 |
e |
与 Esc 符 u001B 匹配。 |
| |