为什么我这个正则表达式 /<\/*[a-z]+(\s+={1,1}[\'\"].+[\'\"])?\/*>/i 无法匹配 <A href='.wamp.com'>
展开全部
因为你此处忘了去匹配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 写的教程的地址的)
正确的写法,可以是:
/<\/*[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 写的教程的地址的)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询