2017-09-07 8 views
1

캡처 그룹 내에 앵커를 사용하는 것이 좋습니다? 해당 패턴을 사용하여 라인 시작 또는 공백과 일치하도록 lookbehind 작업을 시뮬레이트하려고합니다.JavaScript에서 (^ | s) 유효한 정규식입니까?

예를 들어 행 시작 부분이나 공백 뒤에있는 해시 태그와 일치 시키려면 행을 끝내거나 공백 문자가 뒤에 오는 경우 이보다 더 좋은 방법이 있습니까?

(^|\s)#([\w]+)($|\s) 

나는 단순화를 위해 캡처하지 않는 그룹을 남겼습니다.

+1

안녕하세요! 우리가 당신을 도울 수 있도록 (더) 코드를 제공하십시오. 그렇지 않으면 ... – Jan

+0

그냥 그대로 두거나'(^ | \ s) # ([\ w] +) (?! \ S)' – sln

답변

0

경우에 따라 (^|\s)이 그룹 내에서 필요하므로 다른 그룹 내에서 사용됩니다.
BOS 또는 공백이 있지만 둘 다는 아닙니다.

Fwiw, (^|\s)은 그룹을 필요로하지 않는 일반적인 공백 경계입니다.
이 코드는 (?<!\S)입니다.

하지만 JS는 보이지 않는 어설 션을 지원하지 않으므로 그대로 두어야합니다.

다른 쪽 (\s|$)의 경우에는 JS가 지원하는 Look ahead Assertion을 사용하는 (?!\S)이됩니다.