单字符匹配
字符 | 匹配 | 举例 |
---|---|---|
. |
匹配任意字符(除了\n) | |
[...] |
匹配字符集 | 待匹配字符:android 使用正则表达式:[a-z] |
\d \D |
匹配数字 / 非数字 | 待匹配字符:1314 使用正则表达式:\d |
\s \S |
匹配空白/非空白字符 | |
\w \W |
匹配包含下划线的任何单词字/匹配任何非单词字符 |
多字符匹配
字符 | 匹配 | 举例 |
---|---|---|
* |
匹配前一个字符0次或者无限次 | |
+ |
匹配前一个字符1次或者无限次 | |
? |
匹配前一个字符0次或者1次 | |
*?、+?、?? |
匹配模式为非贪婪(尽可能少匹配) | 待匹配字符:android 使用正则表达式:[a-z]+? 匹配结果:a |
{m} 、{m,} 、 {m,n} |
匹配前一个字符m次、至少匹配m次、最少匹配m次且最多匹配n次 | 待匹配字符:android 使用正则表达式:[a-z]{3,5} 匹配结果:andro |
边界匹配
字符 | 匹配 |
---|---|
^ |
匹配字符串开头 |
& |
匹配字符串结尾 |
\A 与 \Z |
指定的字符串匹配必须出现在开头与结尾 |
分组匹配
字符 | 匹配 | 举例 |
---|---|---|
| |
匹配左右任意一个表达式 | |
(ab) |
括号中表达式作为一个分组 | 待匹配字符:OCFT@ping.com.cn 使用正则表达式:[\w]{4,10}@(pingan|163).com.cn 匹配结果:OCFT@ping.com.cn |
\<number> |
引用编号为num的分组匹配到的字符串 | 待匹配字符:<book>Android</book> 使用正则表达式:<([\w]+>)[\w]+</\1 此时\1代表的就是:book> |
(?P<name>) |
分组起一个别名 | 待匹配字符:<book>Android</book> 使用正则表达式:<(?P<mark>[\w]+>)[\w]+</(?p=mark) 此时 (?P<name>) 代表的别名就是:book> |
(?P=name) |
引用别名为name的分组匹配字符串 | 待匹配字符:<book>Android</book> 使用正则表达式:<(?P<mark>[\w]+>)[\w]+</(?p=mark) 此时 (?P=name) 代表引用的别名就是:book> |