为什么我这个正则表达式 /<\/*[a-z]+(\s+={1,1}[\'\"].+[\'\"])?\/*>/i 无法匹配 <A href='.wamp.com'>

 我来答
againinput4
2012-11-18 · TA获得超过2407个赞
知道大有可为答主
回答量:1446
采纳率:70%
帮助的人:640万
展开全部
因为你此处忘了去匹配href。
正确的写法,可以是:
/<\/*[a-z]+\s+(\w+={1,1}[\'\"].+[\'\"])?\/*>/i
这样就可以匹配出来:
href='.wamp.com'
了。

另外,上述表达式中,对于等于号的限定{1,1},明显是多余的写法,可以直接写成:
={1}
最好直接写成
=
本身就是匹配单个的等于号这个字符

所以最后变为
/<\/*[a-z]+\s+(\w+=[\'\"].+[\'\"])?\/*>/i
同样可以匹配到:
href='.wamp.com'

注:我是用Perl去测试的。
Php等其他语言中,也会是同样的效果。

之余你为何写错了,估计是对\s和\S不太熟悉。
或者就是忘了去匹配href这部分了。

感兴趣的话,可以去看看我所总结的:
正则表达式学习心得

(此处不给贴地址,自己用google搜标题,即可找到我 crifan 写的教程的地址的)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式