2014-09-04 2 views
1

나는 특정 정규식 문제를 해결하기 위해 노력하고 있습니다. 텍스트에 X 문자가 발생했음을 발견하고 싶습니다. 다른 문자는 X 옆에 없습니다.문자의 한 번 발생 찾기

"Hello X!"   //- 1 find 
    ^
"Hello XX!"  //- No find 

"X! Hello! X!"  //- 2 finds 
^  ^
"Hello XXX!"  //- No find 

아이디어가 있으십니까?

+4

당신은 (음 lookarounds를 사용할 수 있습니다 Javascript를 사용하지 않는 한'(? RevanProdigalKnight

답변

3

(당신은 자바 스크립트를 사용하지 않는 한 너무 오래) 당신은 부정적인 lookarounds을 사용할 수 (?<!X)X(?!X) 또는, 당신은 자바 스크립트를 사용하는 경우, (?:[^X]|^)X(?:[^X]|$)

PCRE Example

JavaScript Example

+0

감사합니다! 마침내 부정적인 lookbehind/lookahead 일을 이해했습니다. – achingfingers

+0

처음에는 나에게 혼란을주었습니다. 가끔씩 시간이 걸립니다. – RevanProdigalKnight

+0

'[^ X] X [^ X]'는'X'의 앞뒤에 * some * 문자가 필요하다는 것을 알아 두십시오. 즉,'X'가 문자열의 첫 번째 또는 마지막 문자 인 경우 . – Thomas

관련 문제