(?<name>) 为组增加别名。
元字符:是指在正则表达式模式中具有特殊含义的字符或字符组合。
元序列:许多元字符是由两个字符组成的。把这种成对的、组合起来的、传达一个元字符含义的字符称为元序列。
空白字符:空格符和其他不可见的字符,如换行符等。
修饰符:用来修饰如何应用正则表达式。例如:指定正则表达式模式是应该按区分大小写的方式还是不按区分大小写的方式来解释。或者用来指定如何处理跨行和跨段匹配。
直接量字符:
字符。
限量操作符:
?匹配它前面的字符,出现零次或者一次。
*匹配它前面的字符,出现零次或者多次。
+匹配它前面的字符,至少出现一次。
{n}匹配n次。
{n,m}匹配n到m次。
{n,}至少匹配n次。
元字符:
. :匹配任何字母字符或数字,也匹配非英语语言中的文字字符。也就是说可以匹配除换行符之外的任意字符,当然通过修改,也可以匹配换行符。
匹配元字符:
如果要匹配元字符需要在其前面加一个反斜杠“/”来进行转义。
/w:元字符只匹配英文字母字符、数字、下划线。/W匹配/w不匹配的字符。
/d 或者[0-9]只匹配一个数字。/D匹配非数字。
/s:可以匹配一个空格符、一个制表符或一个换行符。/S会匹配除了空白字符。
/t:匹配一个制表符。
/n:匹配一个换行符。
查找反斜杠// 字符类:例如[ae]只要是a或者e都可以匹配,或者[12]匹配1或者2。同样也可以使用圆括号(a|e) 字符类中的元字符的特殊含义: 在字符类内部/b表示一个回格符,$只匹配它本身。 [^abc]表示不能匹配abc,而[abc^]表示匹配abc^中的一种。 匹配十六进制数[0-9a-fA-F] 写完正则表达式一定要添加注释 潜在的范围陷阱:如果想匹配一个日期的分隔符,这个分隔符可能是“-”,“/”,“.”,但是我们编写字符类的是后有可能写成[.-/]这样含义就变成了,从“.”到“/”的范围内的匹配结果。如果我们写成[-./]就好了,将-放在第一个位置。 POSIX字符类 不会像常规的字符类那样表示。 例如[A-Za-z0-9]用POSIX字符类则用[:alnum:] 原子零宽断言:位置元字符。 ^:匹配一个字符串或一行的开始位置。例如:^The 匹配一行的第一个字符序列是The。 $:匹配一个字符串或一行的结束位置。例如:the$匹配一行的最后一个字符序列是the。 ^$:匹配一个空白行。 /<和/>:分别匹配一个单词的开始和结束位置。/<:用于识别一个词开始位置的词边界。它的前面是一个非字母字符(比如,一个空格符)或者是一行的开始位置。 /b:匹配一个单词的边界。/B 多行模式:匹配完一行后,换行符之后的位置将会(即下一行的开始位置)将会与上一行的开始位置等同,接着进行匹配。 ()圆括号可以进行分组。圆括号内不能包括任何空白符。
向前查找:star 后面是空格和一个training时才匹配start 实现:Start(?= Training) (?:)非捕获组 (?=)肯定式向前查找 (?!)否定式向前查找 (?<=)肯定式向后查找 (?<!)否定式向后查找 灵敏度:找到的匹配项中正确的除以一共要找的。越大说明表达式越敏感,是从量的角度衡量的。 特殊性:找的的匹配项中正确的除以一共找的的。越大说明找的越准确,是从质的角度衡量的。 一定要有良好的注释。 C#和正则表达式 System.Text.RegularExpressions命名空间