정규 표현식 질문입니다.

noradiance의 이미지

책에서 보고 이해가 안되어서 올리는데요

Please enter the nine-digit id as it appears on your color - coded pass-key.

에서 \B-\B 를 적용했을 때 왜 " color - coded " 의 하이픈(-)이 검색되는건지 모르겠습니다.

\B-\B는 [a-zA-Z0-9_]-[a-zA-Z0-9_] 에 포함되는 하이픈을 찾는것이 아닌가요?

\b의 정의 자체가 하이픈과 공백 사이의 위치를 가리키는 것으로 알고 있는데 그렇다면 공백이 붙어있지 않는 하이픈을 검색하는게 맞는 듯 생각되어서요.

너무 헷갈리네요

raymundo의 이미지

Perl 정규식 기준으로는,
\b 는 두 캐릭터 사이의 지점에 매치가 되는데, 이 때 두 캐릭터 중 하나는 \w에, 다른 하나는 \W에 해당되는 경우에 한해서 그렇습니다.

nine-digit 은 e와-, -와d 가 위 조건에 맞으니까 \b에 매치되는 곳이죠.

color - coded 는 space와- 두 캐릭터가 다 \W에 해당하니까 \B에 매치됩니다.

좋은 하루 되세요!

noradiance의 이미지

아 그렇군요

\B-\B는 한쪽이 \W인 - 이라서 다른 한 쪽도 \W에 속한 것만 검색이 되는 거였네요.

감사합니다^^

남의 이야기를 잘 듣는 사람이 되자.
급할수록 돌아가자.