正则表达式

2019-01-30  本文已影响0人  不能说的小憩

单字符匹配

字符 匹配 举例
. 匹配任意字符(除了\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>
上一篇 下一篇

猜你喜欢

热点阅读