[定期] 単語に完全に一致する Perl 正規表現の書き方 (プレビュー)
この投稿の最終編集はdefault7 on 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{$value}\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 />
ログイン後にコピー