| 元字符 | 注解 |
|---|---|
| 行定位点:"^"和"$" | 这两个字符分别代表一行文字的开始和结束。例如,^mike将只会寻找以mike开始的行,同样mike$将只会寻找以mike结尾的行。 |
| 字符分类:"[]" | 一对方括号被称为字符分类,你可以用来匹配任何一个和多个字符。假设你想匹配单词"gray",同时也想找一下被拼写成"grey"的单词。使用一个字符分类将允许你匹配这两者——正则表达式gr[ea]y被解读成匹配这样的字符串,一个g,一个r,跟着或者是一个e或者是一个a,跟着时一个y。字符分类中的^表示否定。 |
| 字符分类中的元字符:"-" | 字符分类中的元字符"-"(dash)用来指出一个字符范围。字符分类[0123456789abcdefABCDEF]采用’-‘的话可以写成这样[0-9a-fA-F]。"-"只有在字符分类中才被认为是元字符。 |
| 选择性元字符:| | | (pipe)意思是"or"。它允许你把多个表达式合成一个表达式,然后匹配里面任何单个表达式的结果,这些子表达式被称为备选项。例如,Mike和Mickael是两个独立的表达式,但是Mike |
| 匹配可选项:"?" | "?"(question mark)意味着可选。它放在正则表达式的某个字符的后面,这个字符允许在匹配结果中出现,也可以不出现。 |
| 数量符号:"+"、"*" | 像"?"元字符一样,"+"(plus)和 "*"(star)元字符影响前导字符,可以匹配字符串中字符出现的数量("?"相当于0或者1次;"+"匹配一次或者多次;"*"表示匹配任何次)。 |
| 数量范围:"{}" | "{最小, 最大}"表示指定的特定项目可以被匹配的最少和最大次数。 |
| 转义字符:"\" | "\"(backslash)被用来转换指定元字符的含义,以便于把它们当成普通的字符来匹配。 |
| 圆括号:"()" | 大部分正则表达式工具允许你用圆括号设定一个特定的表达式子集。 |
| 句点:"." | "."(adot或point)是一种匹配任何字符的写法,在字符分类中"."就不是元字符了。 |
| 匹配边界:"\b" | 匹配一个单词边界,也就是指单词和空格间的位置(即正则表达式的“匹配”有两种概念,一种是匹配字符,一种是匹配位置,这里的\b就是匹配位置的)。例如,“er\b”可以匹配“remember”中的“er”,但不能匹配“pert”中的“er”。 |
| 匹配非边界:"\B" | 匹配非单词边界。“er\B”能匹配“pert”中的“er”,但不能匹配“remember”中的“er”。 |
| 匹配数字字符:"\d" | 匹配一个数字字符。等价于[0-9]。 |
| 匹配非数字字符:"\D" | 匹配一个非数字字符。等价于[^0-9]。 |
| 匹配换页符:"\f" | 匹配一个换页符。 |
| 匹配换行:"\n" | 匹配一个换行符。 |
| 匹配换页符:"\r" | 匹配一个换回车符。 |
| 匹配不可见字符:"\s" | 匹配任何不可见字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。 |
| 匹配任何可见字符:"\S" | 匹配任何可见字符。等价于[^ \f\n\r\t\v] |
| 匹配字母、数字、下划线:"\w" | 匹配字母、数字、下划线。等价于[A-Za-z0-9_] |
| 匹配非字母、数字、下划线:"\W" | 匹配非字母、数字、下划线。等价于[^A-Za-z0-9_] |