2013-03-10 3 views
3

지정된 문자 (이 예제에서는 "f")를 제외한 모든 문자를 일치 시키려면 [^f]+을 사용합니다.PHP preg_match 단어를 제외한 모든 문자

하지만 어떻게 특정 단어를 제외한 모든 문자를 일치시킬 수 있습니까? 같은 뭔가 [^word]+

예 :

건초 더미 : "bla1 bla2 bla3 bla4 hello bla5 bla6 bla7"

바늘 (건초 더미가 HTML과 줄 바꿈 포함) : "bla1 bla2 bla3 bla4 "

그래서 내가 전까지 처음부터 모든 것을 잡으려면을 "hello"

+0

시도해 봤니? 그냥 [^ 단어]하고 있니? – christopher

+0

글자 w, o, r, d가 포함 된 내용과 일치합니다. – Martin

+0

[어설 션] (http://php.net/manual/en/regexp.reference.assertions.php) –

답변

5

링크 된 가능한 복제본은 지정된 단어가 들어 있지 않은 행과 일치하는 것입니다. 나는 그것이 확실한지, 무엇이 여기에서 묻히는지에 관해 모른다.

문자열의 모든 내용을 특정 단어와 일치 시키려면 ^ start of a string and $ end of a string 대신 \bword boundary 앵커를 사용해야합니다. 단어를 제외한 모든 일치하는 예를

\b(?:(?!your).)+\b 

를 들어

"당신"

그것을 here on Regexr

(?!your)를 "당신"다음 문자열이 아닌 경우 사실이다 negative lookahead assertion되어보기 현재 위치.

관련 문제