2012-12-03 3 views
-4

내가 문자열을 가지고 말할 수 있습니다 : "Test [[1294]] example"PHP 정규 표현식 도움말 (preg_replace이다)는

내가 할 수있는 방법 대괄호에서 숫자를 추출 것 preg_replace()?

누군가가 그 숫자를 얻기위한 (욕심 많은) 표현이 무엇인지 알 수 있습니까? - 항상 이중 대괄호 안에있는 정수가 될 것입니다.

고맙습니다.

답변

2

You might want to check out a tutorial.

당신이 수를 "추출"할 경우, preg_replace 필요가 없다. preg_match 또는 preg_match_all (여러 번있을 경우) 대신 사용하는 대신의 경우

preg_match('/\[\[(\d+)\]\]/', $input, $matches); 
$integer = $matches[1]; 

또는

preg_match_all('/\[\[(\d+)\]\]/', $input, $matches); 
$integerArray = $matches[1]; 

을 실제로 I preg_replace이 용어 및 사용이 추출 할 수있는 방법 "과 같은 의미"추출 " 정수 부분은 "당신은 $1를 사용하여, 같은 정규 표현식을 사용하여 캡처 한 정수로 참조 할 수 있습니다 :

$output = preg_replace('/\[\[(\d+)\]\]/', 'Found this integer -> $1 <-', $input); 

결과는 다음과 같습니다.

Test Found this integer -> 1294 <- example 
+0

완벽한 감사합니다. –

+0

그 preg_replace를 욕심이 많지 않게 할 수있는 방법이 있습니까? 감사. –

2

당신은 preg_match()하지 preg_replace() 사용합니다 :

$subject = 'Test [[1294]] example'; 
preg_match('/\[\[(\d+)\]\]/', $subject, $match); 
echo $match[1]; 
+0

감사합니다. –