正则表达式
字符组([]
)
允许匹配一组可能出现的字符。
区间(-
)
字符组中使用连字符(-)
代表区间,依照这个规则,我们可以总结出三点:
- 要匹配任意数字可以使用
[0-9]
; - 如果想要匹配所有小写字母,可以写成
[a-z]
; - 想要匹配所有大写字母可以写成
[A-Z]
。
匹配特殊字符
特别字符 | 描述 |
---|---|
$ | 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,请使用 \$。 |
( ) | 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。 |
* | 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。 |
+ | 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。 |
. | 匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \. 。 |
[ | 标记一个中括号表达式的开始。要匹配 [,请使用 \[。 |
? | 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。 |
\ | 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "("。 |
^ | 匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。要匹配 ^ 字符本身,请使用 \^。 |
{ | 标记限定符表达式的开始。要匹配 {,请使用 \{。 |
| | 指明两项之间的一个选择。要匹配 |,请使用 \|。 |
取反(^
)
通过在字符数组开头使用 ^
字符实现取反操作,从而可以反转一个字符组(意味着会匹配任何指定字符之外的所有字符)。
快捷方式
快捷方式 | 描述 |
---|---|
\w | 与任意单词匹配 |
\d | 与任意数字匹配 |
\s | 与空白字符匹配 |
\b | 匹配的是单词的边界 |
快捷取反
快捷方式也可以取反,例如对于\w
的取反为\W
,将小写改写成大写即可,其他快捷方式也遵循这个规则。
开始和结束
开始
: ^
指定的是一个字符串的开始,结束
:$
指定的是一个字符串的结束。
任意字符
.
字符代表匹配任何单个字符,它只能出现在方括号以外。
可选字符
?
的作用就是匹配它之前的字符0
次或1
次。
重复
在一个字符组后加上{N}
就可以表示在它之前的字符组出现N
次。
重复区间
语法:{M,N}
,M
是下界而N
是上界。\d{3,4}
既可以匹配3
个数字也可以匹配4
个数字,不过当有4
个数字的时候,优先匹配的是4
个数字,这是因为正则表达式默认是贪婪模式,即尽可能的匹配更多字符,而要使用非贪婪模式,我们要在表达式后面加上 ?
号。
开闭区间(速写)
闭区间不写即可表示匹配一个或无数个。
速写:+
等价于{1,}
,*
等价于{0,}
。