正则表达式
\ 转义字符
( ) 分组标记,内部只能使用 | 操作符
. 匹配任何单个字符,包括空格
[ ] 匹配括号中的任何一个字符,括号内可以使用连字符“-”来指定字符的区间,比如 [0-9] 匹配任何数字,[A-Za-z] 匹配任何字母
| 将两个匹配条件进行逻辑“或”运算
? 将它前面的子表达式 0 或 1 次
+ 将它之前的子表达式匹配 n 次,n为任意正整数
* 将它之前的子表达式匹配 n 次,n为任意自然数
{n} 将它之前的子表达式匹配指定的次数
{n,} 将它之前的子表达式匹配不少于指定的次数
{n,m} 将它之前的子表达式匹配不少于指定的下限次,不多于指定的上限次
^ 将它之后的子表达式作为一行的开始
^ 非 (注意这个符号有两种不同含义)
$ 将它之后的子表达式作为一行的结尾
\d 任意数字,等价于[0-9]
\D 非数字,等同于^[0-9]
\s 换行符、Tab制表符等空白字符
\S 非空白字符
\w 匹配字母或数字或下划线或汉字,即能组成单词的字符
\W 非\w ,等价于^[\w]
贪婪(greedy)匹配:尽可能多的匹配,直到“再贪婪一点儿”其后的匹配模式就没法匹配为止
+、*的匹配默认是贪婪的
在+、*后添加 ? 就变成非贪婪模式(? 的另外一个用途):让其后的匹配模式尽早的匹配。