正则表达式——捕获组和反向引用

正则表达式中 [] 表示字符组,在中括号中所有出现的字符中,匹配其中的任意一个字符。且只能是 1 个字符。
比如 [abc] 可以匹配 a、b、c 三个字符中的任意一个。

在字符组中,可以使用连接符 - 来表示一个字符区间。
如 [a-zA-Z0-9] 表示匹配任意一个大小写英文字母或数字。
连接符两端的字符,左侧的字符在 ASCII 码表中应该比右侧字符小,表示 ASCII 码表中从左侧字符到右侧字符这个字符区间中的字符。
例如码值:0-9 的码值是 48-57,a-z 的码值是 97-122,A-Z 的码值是 65-90。
如果连接符要表示本意即短横线,那么要放在字符组的开始处,如 [-abc] , 表示匹配短横线或 a、b、c 三个字符中的一个字符。

另外,在字符组中,其它的元字符比如 . * ? 等,都变为正常字符,不再代表通配或是量词
只有 \ [ ] 即转义符,中括号,需要转义一下,否则会引起异常,或是歧义
比如要匹配反斜线这个字符,中括号中需要两个反斜线,第一个表示转义:

[\\]

比如要匹配中括号的左括号或有括号,应该将左右括号进行转义后放入字符组,像这样:

[\[\]]

对于排除型字符组
[^]
如 [-abc] 表示,匹配一个除 a、b、c 以外的一个任意字符。
需要排除短横线时,仍然需要把短横线放在 ^ 后,即 [^-abc] 这里,表示匹配除了短横线及 a、b、c 三个字符以外的任意一个字符。

另外对于排除型字符组,也是只能匹配一个字符。
如果我们想排除一个字符串,就需要使用环视(零宽断言):

<h1 class="...">
<h3 >
<table style="xxxxxxx">
<tr></tr>
</table>

比如我们要获取所有的html的标签但排除 h3 这个串,
可以这样 :

<(?!h3)[^>]*>

表示匹配那些 以左尖括号 < 开始,后边不能是 h3 字符串。然后匹配一些除了右尖括号以外的任意字符任意次,最后以右尖括号 > 结尾的字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值