2009-11-19 10 views
0

는 preg_match 도움PHP는 내가 일치시킬 수있는 PHP는 preg_match을 찾기 위해 노력하고

TEST1의 TEST2 [...]하지만 TEST1 TEST2 [...]

및 TEST2를 반환 (...)와 같은 $ 일치로 출력.

나는
preg_match('/^[a-zA-Z0-9][\[](.*)[\]]$/i',"test1 test2[...]", $matches); 

을 시도하지만 두 경우 모두 일치하고 전체 문장을 반환합니다.

도움을 주시면 감사하겠습니다.

+2

예제에 대한 자세한 내용을 참조하십시오! – powtac

+0

"test1 test2 [...]가 아닌 test1 test2 [...]"문자열 또는 배열입니까? – powtac

답변

2
preg_match('/([a-zA-Z0-9]+[\[][^\]]+[\]])$/i',"test1 test2[...]", $matches); 

으로 통지는 전체 표현식을 잡을 수 있도록 허용 할 하나 개 이상의 영숫자 문자를

( 및 전체 표현식 주위 )을 말한다 +[a-zA-Z0-9] 후. 정규 표현식이 ] 있기 때문에이 끝날 때까지 캡처 할 test2[.....] test3[sadsdasdasdad]의 경우 욕심을하기 때문에 콘텐츠 이후

내가 [^\]].*을 변경 한 주위 []입니다.

$을 사용하고 있기 때문에주의해야합니다. 결국에는 항상 일치 할 것이므로, 의도 한 것이 맞는지 확실하지 않습니다.

참조 용으로 this을 볼 수 있습니다.