Programing

정규식에서 슬래시 이스케이프

lottogame 2020. 8. 30. 19:38
반응형

정규식에서 슬래시 이스케이프


내 질문은 간단한 질문이며 정규 표현식 이스케이프에 관한 것입니다. /정규식에서 슬래시를 이스케이프해야 합니까? 그리고 어떻게 하시겠습니까?


어떤 맥락 / 언어? 일부 언어 /는 패턴 구분 기호 로 사용 되므로 예, 어떤 언어 / 컨텍스트에 따라 이스케이프해야합니다. 그 앞에 백 슬래시를 넣어 이스케이프합니다. \/일부 언어 (예 : PHP)의 경우 다른 문자를 구분 기호로 사용할 수 있으므로 이스케이프 할 필요가 없습니다. 그러나 AFAIK는 모든 언어에서 유일하게 특별한 의미 /는 지정된 패턴 구분 기호 일 수 있다는 것입니다.


다음은 몇 가지 옵션입니다.

  • Perl에서는 대체 구분 기호를 선택할 수 있습니다. 당신은에 국한되지 않습니다 m//. 같은 다른 것을 선택할 수 있습니다 m{}. 그런 다음 탈출이 필요하지 않습니다. 사실 "Perl Best Practices"의 Damian Conway는 이것이 사용해야 m{}하는 유일한 대체 구분 기호라고 주장하며 이는 Perl :: Critic (CPAN에서)에 의해 강화됩니다. 당신은 대체 구분 문자의 다양한 사용하여 멀리 얻을 수 있지만 //{}나중에 해독 깨끗한 것 같다. 그러나 이러한 선택 중 하나가 너무 많이 이스케이프되는 경우 가독성에 가장 적합한 것을 선택하십시오. 일반적인 예는 m(...), m[...]m!...!입니다.

  • 대체 구분 기호를 사용할 수 없거나 사용하지 않으려는 경우 백 슬래시로 슬래시를 이스케이프 할 수 있습니다. m/\/[^/]+$/예를 들어 (가 될 수있는 대체 구분 기호를 사용하여 m{/[^/]+$}더 명확하게 읽을 수 있습니다). 백 슬래시로 슬래시를 피하는 것은 이름과 위키피디아 페이지 인 Leaning Toothpick Syndrome 을 얻을 수있을만큼 일반적 입니다. 단 하나의 인스턴스 만있는 정규식에서 슬래시를 이스케이프하는 것은 가독성을 저해하는 수준으로 올라가지 않을 수 있지만, 손에서 벗어나기 시작하고 언어가 Perl처럼 대체 구분 기호를 허용하는 경우 선호하는 솔루션입니다.


백 슬래시를 사용 \하거나 다른 구분 기호를 선택하십시오. 즉 m#.\d#, /.\d/"Perl에서 / 정규식 구분 기호 앞에 문자 m (일치의 경우)을 추가하면 거의 모든 특수 문자로 변경할 수 있습니다."


구분 기호가 /이면 이스케이프해야합니다.


C #을 사용하는 경우에는 이스케이프 할 필요가 없습니다.

참고 URL : https://stackoverflow.com/questions/6076229/escaping-a-forward-slash-in-a-regular-expression

반응형