2013-08-26 2 views
0

문자열에서 두 개의 문자열을 추출하려고합니다. 문자열의 형식은 다음과 같습니다.preg_match를 사용하여 문자열에서 두 문자열 Extact

$text = 'First string here(second here)'; 

초 문자열은 항상 따옴표 안에 끝납니다. 나는 그들을 효율적으로 추출하려고 노력하고있다. 나는 이것을 사용해 보았습니다 : preg_match('#\((.*?)\)#', $text, $match)preg_match('/\(([^\)]+)\)/', $text, $match)

위의 표현식은 정상적으로 작동하지만, 한 번에, 별도로하지 않으려 고합니다./

답변

0

당신은 캡처 그룹을 사용할 수 있습니다 :

$text = 'First string here(second here)'; 
if (preg_match('#^([^\(]+)\(([^\)]+)\)$#', $text, $match)) { 
    print "$match[1]\n"; 
    print "$match[2]"; 
} 

See demo on ideone 나는에서 발로 내 OCD 같아요.

0
$out= preg_split('/[\(\)]/',$text)[1]; 
+0

완벽하게 작동하지만 초 문자열에서 괄호를 제거하려면 어떻게해야합니까? – user962449

+0

@ user962449 edit가 도움이 되었기를 바랍니다. – Anirudha

+0

사소한 것이지만 [PREG_SPLIT_NO_EMPTY'] (http://php.net/manual/en/function.preg-split.php) 플래그 ([http : //ideone.com/2DvsiU)). – Emissary

관련 문제