> 백엔드 개발 > PHP 튜토리얼 > 为何匹配不全 求原因 ('/$(w+)=(.+?) $/i', $d, $matches2)

为何匹配不全 求原因 ('/$(w+)=(.+?) $/i', $d, $matches2)

WBOY
풀어 주다: 2016-06-23 13:28:37
원래의
862명이 탐색했습니다.

$d = ‘$Row=10 $cid=1 $table=channel $sql=select * form abc $Where=[FatherID]=0 $’


preg_match_all('/\$(\w+)=(.+?) \$/i', $d, $matches2); 
if($matches2){
$d2 = '';
for($k=0;$k $d2 = $d2 . $matches2[1][$k] . '="' .$matches2[2][$k] .'" ';
}
}
 
结果 只有 Row="10" table="channel" Where="[FatherID]=0"

应该是 Row="10" cid="1"  table="channel"  $sql="select * form abc" Where="[FatherID]=0" 才对呀 错在哪呢?


回复讨论(解决方案)

应该匹配到5个才对呀 为啥只有3个呢 求大神给个解决方案

$d = '$Row=10 $cid=1 $table=channel $sql=select * form abc $Where=[FatherID]=0 $';preg_match_all('/\$(\w+)=([^$]+)/i', $d, $matches2);print_r($matches2);
로그인 후 복사
Array(    [0] => Array        (            [0] => $Row=10             [1] => $cid=1             [2] => $table=channel             [3] => $sql=select * form abc             [4] => $Where=[FatherID]=0         )    [1] => Array        (            [0] => Row            [1] => cid            [2] => table            [3] => sql            [4] => Where        )    [2] => Array        (            [0] => 10             [1] => 1             [2] => channel             [3] => select * form abc             [4] => [FatherID]=0         ))
로그인 후 복사

你 /\$(\w+)=(.+?) \$/ 这样写不行的原因是
$Row=10 $cid=1  $table=channel $sql=select * form abc  $Where=[FatherID]=0 $
看明白了吗?

用这个规则,你还需要 $d = str_replace('$', '$$', $d), 

你 /\$(\w+)=(.+?) \$/ 这样写不行的原因是
$Row=10 $cid=1  $table=channel $sql=select * form abc  $Where=[FatherID]=0 $
看明白了吗?

用这个规则,你还需要 $d = str_replace('$', '$$', $d), 



啊 这么笨的正则啊。。。郁闷 嗯 我改进下 谢啦

你 /\$(\w+)=(.+?) \$/ 这样写不行的原因是
$Row=10 $cid=1  $table=channel $sql=select * form abc  $Where=[FatherID]=0 $
看明白了吗?

用这个规则,你还需要 $d = str_replace('$', '$$', $d), 



啊 这么笨的正则啊。。。郁闷 嗯 我改进下 谢啦
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿