반응형
정규식 범위의 이스케이프 점
어떤 이유로이 두 정규식은 같은 방식으로 작동합니다.
"43\\gf..--.65".replace(/[^\d.-]/g, ""); // 43..--.65
"43\\gf..--.65".replace(/[^\d\.-]/g, ""); // 43..--.65
첫 번째 정규식에서는 dot ( .
)을 이스케이프하지 않고 두 번째 정규식에서는 I do ( \.
)를 수행합니다.
차이점은 무엇이며 왜 동일하게 작동합니까?
점이 문자 클래스 (대괄호 []
) 안에 있기 때문 입니다.
http://www.regular-expressions.info/reference.html을 살펴보십시오 (char 클래스 섹션 아래).
^-] \를 제외한 모든 문자는 해당 문자를 문자 클래스의 가능한 일치 항목에 추가합니다.
도트 연산자 .
는 문자 클래스 내에서 이스케이프 할 필요가 없습니다 []
.
JavaScript를 사용하여 Regex를 테스트하는 경우 \\.
대신 \.
.
JS가 첫 번째 백 슬래시를 제거하기 때문에 동일한 방식으로 작동합니다.
에 이 웹 페이지 , 나는 것을 볼 수 :
"점은 문자 클래스 내의 메타 문자가 아니므로 백 슬래시로 이스케이프 할 필요가 없습니다."
그래서 탈출은 불필요하다고 생각합니다 ...
참고 URL : https://stackoverflow.com/questions/10397968/escape-dot-in-a-regex-range
반응형
'Nice programing' 카테고리의 다른 글
Rails 모듈에서 URL 도우미에 액세스하는 방법 (0) | 2020.11.19 |
---|---|
형식 또는 네임 스페이스 이름 'Entity'가 네임 스페이스 'System.Data'에 없습니다. (0) | 2020.11.19 |
Express Passport (node.js) 오류 처리 (0) | 2020.11.19 |
사전에서 숫자 값 증가 (0) | 2020.11.19 |
왜 std :: optional (0) | 2020.11.18 |