ホームページ >バックエンド開発 >PHPチュートリアル >preg_match_all が重複コンテンツと一致する場合、重複して一致したコンテンツをすべて出力するにはどうすればよいですか?
preg_match_all が繰り返しコンテンツに一致する場合に、繰り返し一致したコンテンツをすべて出力する方法
最初にコードを貼り付けます:
$str = '{if aa eq bb or cc eq dd or ee eq ff}';
$patten = '/{(.*?)eq(.*?)(or(.*?))*}/';
preg_match_all($patten,$str,$patten_all);
var_dump($patten_all ;このコードを実行した結果:
パラメータ pattern_all で all または xxx に一致するすべてを保存して配列に保存したい場合、正規表現またはどの関数を変更する必要がありますか?毛糸を使う?
------ソリューションのアイデア----------------------これはあなたの要件を満たす可能性があります
$str = '{if aa eq bb or cc eq dd or ee eq ff}';<br />$patten = '/(?:if<br><font color='#FF8000'>------解决思路----------------------</font><br>or)\s+((\S+)\s+eq\s+([^ }]+))/';<br />preg_match_all($patten,$str,$patten_all);<br />var_dump($patten_all);
array(4) {<br /> [0]=><br /> array(3) {<br /> [0]=><br /> string(11) "if aa eq bb"<br /> [1]=><br /> string(11) "or cc eq dd"<br /> [2]=><br /> string(11) "or ee eq ff"<br /> }<br /> [1]=><br /> array(3) {<br /> [0]=><br /> string(8) "aa eq bb"<br /> [1]=><br /> string(8) "cc eq dd"<br /> [2]=><br /> string(8) "ee eq ff"<br /> }<br /> [2]=><br /> array(3) {<br /> [0]=><br /> string(2) "aa"<br /> [1]=><br /> string(2) "cc"<br /> [2]=><br /> string(2) "ee"<br /> }<br /> [3]=><br /> array(3) {<br /> [0]=><br /> string(2) "bb"<br /> [1]=><br /> string(2) "dd"<br /> [2]=><br /> string(2) "ff"<br /> }<br />}<br /><br />