2012-11-19 2 views
5

자바 스크립트를 포함한 대부분의 정규 표현식 엔진이 워드 경계에 일치하는 \b을 가지고 있음을 알고 있습니다. 단어의 시작 또는 끝 부분에 있어야합니다.단어 원자 " <" and ">"의 Vim 정규 표현식 시작 및 끝과 동일한 JavaScript가 있습니까?

그러나 빔 또한 두 개 더 구체적인 정규 표현식 원자 있습니다

합니까 자바 스크립트는 이러한 원자에 해당하는이, 그렇지 않은 경우 표현하는 방법은 무엇입니까 좀 더 정확한 의미론을 다른 방식으로?

+0

사실 저는'\ <' and '\> '이 실제로 Vim에서 왔다고 걱정하기 시작했습니다. 지금 확인 중 ... – hippietrail

+0

그러나 어떤 단어 경계가 어떤 단어의 시작과 다른 단어의 끝이 아닐까요? 당신이 처리하려고하는 구별은 무엇입니까? –

+0

@MarkReed, 아니요. 단어 경계는 단어 앞뒤의 위치와 만 일치하기 때문에 (예 : 단어 앞뒤의 공백 – stema

답변

7

내가 아는 한 미리 정의 된 것이 없습니다. 그러나 단어의 시작 또는 끝인지 확인하기 위해 단어 경계에 lookahead을 추가하면됩니다.

\<\b(?=\w)이됩니다. 단어 경계 다음에 단어 문자가 ==> 단어 시작 뒤에 오는지 여부를 확인합니다. See this as example on regexr

\>\b(?!\w)이됩니다. 이렇게하면 단어 경계가 아닌 단어 경계 뒤에 단어가 오는 지 확인합니다.

+0

+1하지만 두 번째 경우에는'(? = \ W)'대신'(?! \ w)'를 사용해야합니다. –

+0

@Tim, 의견을 보내 주셔서 감사합니다. 솔루션에 추가했습니다. – stema

+0

실제로는 더 명확하지 않습니다. 솔루션이 문자열 끝에있는 단어 경계와 일치하지 않았을 것입니다. –