2011-10-05 5 views
5

문자열의 특정 단어 전체와 일치하는 정규식을 PHP에서 (preg_match_all) 실행하려고하지만 테스트 한 단어의 일부만 포함하는 단어와도 일치한다는 점에서 문제가 있습니다. 또한 큰 정규 표현식의 하위 쿼리이므로 strpos과 같은 다른 PHP 함수도 슬프게도 도움이되지 않습니다.문자열의 전체 단어를 일치하는 PCRE

문자열 : "I test a string"

단어에 맞게 : "testable", "string"

시도 정규 표현식 : /([testable|string]+)/

예상 결과 : "string" 만!

결과 : "test", "a", "string"

+3

정규식은 정확히'/ ([abegilnrst |] +) /' – NullUserException

+0

과 같습니다. 감사합니다. 지금 해결되었지만 왜 대답을 삭제 했습니까? : D – Inoryy

답변

8

당신이 정말 있는지 확인하려면 만 단어가 포함 된 단어가 아닌 단어를 가져 오면 단어 경계 앵커를 사용할 수 있습니다.

/\b(testable|string)\b/ 

이 단어 경계는 testable 또는 string 다음에 다른 단어 경계와 일치합니다.

2

당신은 당신은 단지 단어와 일치 할, []와 문자 클래스를 원하지 않는다 :

/testable|string/

관련 문제