나는 정규식펄 정규 표현식 단어 경계 등가
\ba
이
(?<!\w)a
에 해당 것을 읽을 수 있지만 그 전에 나는 어쩌면
^a|\Wa
이 너무 상응하는 것을 파악했다
제 질문은 : 화 t는 그 둘의 차이입니까? 누군가가 동등하지 않은 경우 예제를 작성할 수 있습니까? 그래서
\ba
는 (?<!\w)a
\w
a
때문에 일치 동등하다
나는 정규식펄 정규 표현식 단어 경계 등가
\ba
이
(?<!\w)a
에 해당 것을 읽을 수 있지만 그 전에 나는 어쩌면
^a|\Wa
이 너무 상응하는 것을 파악했다
제 질문은 : 화 t는 그 둘의 차이입니까? 누군가가 동등하지 않은 경우 예제를 작성할 수 있습니까? 그래서
\ba
는 (?<!\w)a
\w
a
때문에 일치 동등하다
\b
(?:(?<!\w)(?=\w)|(?<=\w)(?!\w))
는 동등하므로
\ba
(?:(?<!\w)(?=\w)|(?<=\w)(?!\w))a
는 동일하다.
모두 \ba
및 (?<!\w)a
때때로 교환되는 점에 모두 ^a|\Wa
및 (?:^|\W)a
유사하지만 이전 두 단일 문자를 일치 후자의 두 개의 일치 할 수 있기 때문에 그들은 다르다. 비교 : 이것은 그들이 동등하지 않은 이유가 제공 할 수있는 짧은 예이다 !a
일치합니다 !a
^a|\Wa
동안
say '[email protected]#$' =~ s/\ba//r; # [email protected]#$
say '[email protected]#$' =~ s/(?<!\w)a//r; # [email protected]#$
say '[email protected]#$' =~ s/^a|\Wa//r; # !#$
say '[email protected]#$' =~ s/(?:^|\W)a//r; # !#$
\ba
문자열에 대한 a
일치합니다.
'!'는 단어가 아닌 문자이므로 여러분이 틀렸다고 생각합니다. 정규 표현식'\ Wa'는 문자열'! a'와 일치합니다. –
맞아요, 역순으로 썼습니다. –
'(? dawg
@dawg 예,하지만'a'는 단어 문자입니다. 즉,'\ ba'에서'\ b'는 비 단어가 왼쪽에있는 경우에만 만족할 수 있습니다. – hobbs