2011-09-03 3 views
3

내 패턴이다 /(productimages\/)(\w*)(\/v\/)(\w*)(.jpg)/g 데이터 : http://gskinner.com/RegExr/?2ujor알 개질제 'g'PHP 정규식 오류

및 PHP 코드 :

$regexp = ' /(productimages\/)(\w*)(\/v\/)(\w*)(.jpg)/g'; 
if(preg_match("$regexp", $input, $matches, PREG_SET_ORDER)) { 
for($i=0;$i<14;$i++){ 
echo '--->'.$i.'-->'.$matches[0][$i]; 

}} 

결과 경고 :는 preg_match() function.preg- 매치] 알 개질제 'g'

$regexp = ' /(productimages\/)(\w*)(\/v\/)(\w*)(.jpg)/g'; 
if(preg_match_all("$regexp", $input, $matches, PREG_SET_ORDER)) { 
for($i=0;$i<14;$i++){ 
echo '--->'.$i.'-->'.$matches[0][$i]; 

}} 

결과 경고 :으로, preg_match_all() function.preg-완전 일치] 알 개질제 'g'는

이없는 용액 일! : | "Unknown modifier 'g' in..." when using preg_match in PHP?

어떻게해야합니까?

$regexp = ' /(productimages\/)(\w*)(\/v\/)(\w*)(.jpg)/'; 
+0

작동 하겠지만,이 점에 맞게'\을 .' 사용해야합니다. –

답변

5

지금 당신이해야 할 모든 당신의 정규식에서 'g'를 제거하고, 정확했다.

은 g을 삭제하고 당신의 문제와 관련이없는

$regexp = '/(productimages\/)(\w*)(\/v\/)(\w*)(.jpg)/'; 
+1

일치하는 모든 문자열을 원합니다! g를 제거하면 첫 번째로 일치하는 문자열 만 반환됩니다 $ matches [0] – Amino

2

There's no g modifier : preg_match_all로 전환

+1

G가 없으면 첫 번째로 일치하는 문자열 만 반환됩니다!
---> 0 -> productimages/Routers/v/CISCO1941.jpg ---> 1 -> productimages/---> 2 -> 라우터 ---> 3 ->/v/- -> 4 -> CISCO1941 ---> 5 -> .jpg ---> 6 -> ---> 7 -> ---> 8 -> ---> 9 -> - -> 10 -> ---> 11 -> ---> 12 -> ---> 13 -> – Amino

+0

@Amino : preg_match_all()을 사용하십시오. – genesis

관련 문제