0
여기에 js Regex 테스트가 있습니다. 왜 [. n] + 'a nb'문자열과 일치하지 않습니까?
'AAa\nbBB'.match(/AA[.\n]+BB/);//failed match
나는
[.\n]+
어떤 문자와 일치 수 있다고 생각. 내가 잘못?
여기에 js Regex 테스트가 있습니다. 왜 [. n] + 'a nb'문자열과 일치하지 않습니까?
'AAa\nbBB'.match(/AA[.\n]+BB/);//failed match
나는
[.\n]+
어떤 문자와 일치 수 있다고 생각. 내가 잘못?
도트는 character class 안에 문자가있는 점과 일치합니다.
대신 'AAa\nbBB'.match(/AA[\s\S]*BB/);
을 사용하십시오.
대부분의 정규 표현식에서 /AA.*BB/s
과 같은 정규식의 경우 일치시킬 점을 허용하기 위해 /s
플래그를 설정할 수 있습니다. 그러나 JavaScript에서는 해당 기능을 사용할 수 없으므로 어떤 문자와도 일치 시키려면 [\s\S]
을 사용해야합니다.
'[^]'는'[\ s \ S]'와 더 짧습니다. – Gumbo
@Gumbo : 네,하지만 자바 스크립트에서만 작동합니다. 최소한'[\ s \ S]'는 이식성이 있습니다. –
@TimPietzcker 휴대 가능한 것은 아닙니다. 예를 들어 grep에서는 작동하지 않습니다. 여기서 이식성이 어떻게 관련이 있는지는 알 수 없습니다. 캡쳐 그룹에 신경 쓰지 않는다면'(. | \ n)'이 더 읽기 쉽습니다. – 1983