量词:子表达式的匹配次数
字符 | 描述 |
* | 匹配前面的子表达式0次或多次,如:ab*能匹配"a", "ab", "abc"等 |
+ | 匹配前面的子表达式1次或多次,如:ab*能匹配"ab", "abc"等;不能匹配"a" |
? | 匹配前面的子表达式0次或1次, |
{n} | n是一个非负整数,匹配前面的子表达式确定的n次 |
{n,} | n是一个非负整数,最少匹配前面的子表达式n次,最多无限次 |
{n,m} | n, m都是非负整数,且n <= m,最少匹配前面的子表达式n次,最多匹配m次 |
register:所有的量词默认的都是贪婪模式,优先匹配上限。例如o{1,3}优先匹配"ooo",其次匹配"oo",最后匹配"o";在量词后面添加?则表示非贪婪模式;优先匹配下限。
字符集:匹配一类字符
字符 | 描述 |
. | 匹配除"\n"之外的任意一个字符 |
[] | 对单个字符给出取值范围,如[012345abc]或[0-5a-c] |
[^] | 对单个字符给出排除范围,如[^012345abc]或[^0-5a-c] |
\d | 数字,等于[0-9] |
\D | 等于[^0-9] |
\w | 单词字符(数字、字母、下划线),等于[a-zA-Z0-9_] |
\W | 等于[^a-zA-Z0-9] |
\s | 空白字符,等于[\n\t\v\f] |
\S | 等于[^\n\t\v\f] |
锚(Anchors):
字符 | m描述 |
^ | 匹配字符串开头,如:^abc可以匹配abc不能匹配aabc |
$ | 匹配字符串结尾,如:abc$可以匹配abc不能匹配abcc |
\b | Matches a word boundary position between a word character and non-word character or position (start / end of string). |
\B | Matches any position that is not a word boundary. This matches a position, not a character |
选择:
字符 | 描述 |
| | 左右表达式任意一个,如aa|bb|cc表示aa或bb或cc |
分组: