正则表达式匹配
1.匹配单个字符
精确文本匹配
多个匹配结果
区分大小写
匹配任意字符
.
匹配任意一个单个字符
2.匹配一组字符
[n,s]a..xls
字符区间
[a,z]
[A,Z]
[A,z] 匹配ascci字符A到z的所有字母
匹配特殊字符
转义
匹配空白元字符
[\b] 回退一个字符
\r 换行符
\n 回车符
\t tab
\v 垂直制表符
4.使用元字符
使用Posix字符类
#[[:xdigit:]]{6}
5.重复匹配
*
.
+
设置匹配次数
匹配电子邮件 ?
patt1=/[\w\.]+@[\w.]+\.\w+/
匹配一个或多个字母数字,下划线 和 .
开头[ 匹配一次或多次]
[\w.] 与 [\w\.]
效果是一样的 匹配字符集(字母数字字符,下划线和 .
)
匹配url
https?://[\w./]+
使用区间进行重复次数匹配
6.字符串边界
^\s*<\?xml.*\?>
分行匹配模式
(m?)
必须出现在整个模式的最前面,要注意有很多正则不支持 (?m)
例子:
使用正则将下面代码的注释部分全部匹配出来
(?m)^\s*//.*$
7.使用子表达式
- 把一个表达式划分为一系列表达式的目的是为了把那些子表达式作为一个独立元素来使用,子表达式必须用(和)括起来
- 如果要匹配 (和)本身,就必须使用转义序列( 和 )
8.回溯引用 前后一致匹配
解决开始匹配部分和最后匹配部分的关系
回溯引用匹配
- 回溯引用指的是:模式的后半部分引用在前半部分定义的子表达式
- 第0个匹配用来代表整个正则表达式
<[Hh]([1-6])>.*?</[Hh]\1
向前查找元字符
.+(?=:)
匹配但是“不消费”
http://baidu.com
https://alibaba.com
tfp://hahah.yr.cn
向后查找元字符
?<=
A01: 58.77
A02: 59.22
A03: 79.09
B04: 11.2233
(?<=\$)[0-9.]+