2012-11-28 3 views
1

숫자 문자열과 일치하고 내가 preg_replace이다() 나는이 모양을 제거 할정규식 내가 변수에 저장된 쿼리 문자열을

매개 변수를 사용하여 그것에서 몇 가지 물건을 제거해야합니다

&filtered_features[48][]=491 

가 쿼리 문자열 48에서 이러한 매개 변수의 배수가 될 것이며, 정규식은 본질적으로이 일치해야하므로 491은 모든 숫자가 될 수 있듯이 :

'&filtered_features[' + Any number + '][]=' + Any number 

사람은 어떻게 woul 알고 이거 할거야?

답변

1
$string = '&filtered_features[48][]=491'; 

$string = preg_replace('/\[\d+\]\[\]=\d+/', '[][]=', $string); 

echo $string; 

문자열에서 숫자를 제거한다고 가정합니다. 그냥 A_NUMBER = [A_NUMBER] []를 찾아서 =

0
$query_string = "&filtered_features[48][]=491&filtered_features[49][]=492"; 
$lines = explode("&", $query_string); 
$pattern = "/filtered_features\[([0-9]*)\]\[\]=([0-9]*)/"; 
foreach($lines as $line) 
{ 
    preg_match($pattern, $line, $m); 
    var_dump($m); 
} 
0
/\&filtered_features\[(?<n1>\d*)\]\[\]\=(?<n2>\d*)/' 

이 N1에서 첫 번째 숫자와 일치하고 [] []로 변경 때문에뿐만 아니라 여러 변수 쿼리 문자열을 일치합니다

&something[1][]=123&filtered_features[48][]=491 
: 두 번째 N2에

preg_match_all('/\&filtered_features\[(?<n1>\d*)\]\[\]\=(?<n2>\d*)/', $str, $matches); 

비밀 대답은이 문자열로 필요 이상으로 대체합니다

관련 문제