正規表現のマッチングに関する問題
この投稿は ConRst によって最終編集されました: 2013-03-04 16:19:37
文字列はこんな感じ
&AAA=111&BBB=222&CCC=333...
ここで、通常のマッチングを使用して AAA や 111 のような値を取得したいと思います
<br />
<br />
$RegStr='/&(.*)=(.*)/'; //请问这个表达式是不是有问题 我这里的输出结果不对<br />
if(preg_match($RegStr,$urladd,$mat))<br />
{<br />
print_r($mat); //这里如何输出 AAA和 111 这样的两个变量的值<br />
<br />
}<br />
ログイン後にコピー
上記のコードの出力に問題があるので、どなたでも理解できるように投稿しました。
-----解決策---------$RegStr='/&( . *?)=([^&] )/';
-----解決策---------<br />
$str='&AAA=111&BBB=222&CCC=333';<br />
preg_match_all('/&(\w+)=(\w+)/i',$str,$result);<br />
var_dump($result);<br />
ログイン後にコピー
配列(3) {
[0]=>
配列(3) {
[0]=>
文字列(8) "&AAA=111"
[1]=>
文字列(8) "&BBB=222"
[2]=>
文字列(8) "&CCC=333"
}
[1]=>
配列(3) {
[0]=>
文字列(3) "AAA"
[1]=>
文字列(3) "BBB"
[2]=>
文字列(3) "CCC"
}
[2]=>
配列(3) {
[0]=>
文字列(3) "111"
[1]=>
文字列(3) "222"
[2]=>
文字列(3) "333"
}
}