字符的表示
1. 普通字符,特殊字符:
特殊字符:.|*?+(){}^$\\,相当于语言的关键字,这些字符前面加转义符\"\\\"表示字符本身,否则就作为正则表达式特殊用途字符。
特殊转义字符:下表主要针对.Net的正则表达式
Escape sequence Character code Meaning
\\a 0x07 响铃字符
\\f 0x0C Form feed.
\\n 0x0A 换行符
\\r 0x0D 回车符
\\t 0x09 Tab character.
\\v 0x0B Vertical tab.
\\e 0x1B ASCII的Esc字符
\\b 0x08 1. 在里面出现时表示删除键的ASCII字符(Backspace)
2. 不是出现在里面,则表示单词的边界,例如表达式\\b\\w+\\b匹配文本串\"Hi <strong>Hello Kitty</strong>的结果是:\"Hi\", \"strong\", \"Hello\", \"Kitty\", \"strong\"。
\\0dd 0dd An octal character code, where dd is one or more octal digits.
\\xXX 0xXX A hexadecimal character code, where XX is one or more hexadecimal digits.
\\u0020
Matches a Unicode character using hexadecimal representation (exactly four digits).
\\cZ Ctl+Z Matches an ASCII control character; for example, \\cC is control-C.
除了上面的特殊字符之外,其它普通字符都直接去匹配输入文本串中的字符。
2. 字符枚举:中括号括起来,例如[abc]表示出现a, b, c中任意一个字符都可以;[^abc]则匹配除了a, b, c之外的任意一个字符。
3. 字符范围:[a-zA-Z0-9]。
4. 综合表示:
\\w
所有大小写英文字母、数字字符、下划线,等同于[a-zA-Z0-9_]
\\W
除了\\w之外的所有字符,等同于[^a-zA-Z0-9_],包括空白字符、各种特殊字符等
\\s 所有空白字符,等同于[\\t\\n\\r\\f\\v]
\\S 除了\\s之外的所有字符,等同于[^\\t\\n\\r\\f\\v]
\\d 所有的数字字符,等同于[0-9]
\\D 所有的非数字字符,等同于[^0-9]
\\A 匹配字符串的开始位置(不代表任何字符,匹配结果长度为0)
\\Z 匹配字符串的结束位置(不代表任何字符,匹配结果长度为0)
. 在DOTALL模式下,表示任何字符(包括空白字符、各种特殊字符等),等同于[\\w\\W]、[\\s\\S]、[\\d\\D]等
在非DOTALL模式下,表示除了换行符之外的所有字符 [Page]
DOTALL模式,参考下面正则表达式选项部分
Alternation, Condition Constructs(等价、条件式结构)
1. Alternation Construct: (pattern1)|(pattern2),子表达式1或者2任意一个匹配就匹配成功。
2. Condition Construct: (?(expression)(patternYes)|(patternNo)),如果符合expression,则使用patternYes子表达式进行匹配,否则使用patternNo进行匹配。expression也可以是backreference中