【正则】Perl式正则 完整匹配单词 的正则怎么写(前瞻)
本帖最后由 default7 于 2014-10-27 09:30:18 编辑
使用Sublime或者很多编辑软件的搜索功能都会有这个功能,完整匹配单词,这个是如何实现的?
<br /><br />/**<br /> * @param $str<br /> *<br /> * @return string<br /> */<br />function getValue($str)<br />{<br /> return preg_match('/(?:\D)(\d{8})(?:\D)/', $str, $matches) ? $matches[1] : '';<br />}<br /><br />$arrStr = [<br /> '10208899', //有<br /> '#10208899', //有<br /> '#test^10208899', //有<br /> '#ff1020889900',//无<br /> '#0010208899',//无<br /> '#1020^10208899a',//有<br /> '#5566880&10208899f',//有<br /> 'test?#10208899',//有<br /> '#10208899.'//有<br />];<br /><br /><br />foreach ($arrStr as $i => $str) {<br /> $value = getValue($str);<br /> echo "$i\t{$str}\t\t=>\t{$val<strong style="color:transparent">本&文来源gao@daima#com搞(%代@#码网@</strong><textarea>搞gaodaima代码</textarea>ue}\n";<br />}<br />
以上匹配是错误的,0、1、2、7这些没有匹配出来。
<br />0 10208899 => <br />1 #10208899 => <br />2 #test^10208899 => <br />3 #ff1020889900 => <br />4 #0010208899 => <br />5 #1020^10208899a => 10208899<br />6 #5566880&10208899f => 10208899<br />7 test?#10208899 => <br />8 #10208899. => 10208899<br />
——解决思路———————-
function getValue($str)<br />{<br /> return preg_match('/(?:^<br><font color='#FF8000'>------解决思路----------------------</font><br>\D)(\d{8})(?:\D<br><font color='#FF8000'>------解决思路----------------------</font><br>$)/', $str, $matches) ? $matches[1] : '';<br />}<br />
0 10208899 => 10208899<br />1 #10208899 => 10208899<br />2 #test^10208899 => 10208899<br />3 #ff1020889900 => <br />4 #0010208899 => <br />5 #1020^10208899a => 10208899<br />6 #5566880&10208899f => 10208899<br />7 test?#10208899 => 10208899<br />8 #10208899. => 10208899<br /><br />
搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:【正则】Perl式正则 完整匹配单词 的正则如何写(前瞻)
转载请注明原文链接:【正则】Perl式正则 完整匹配单词 的正则如何写(前瞻)
