대부분의 현대 언어와 도구는 확장 된 정규 표현식을 허용하고 ERE는 모든 역 슬래시가있는 BRE보다 훨씬 깨끗해 보입니다. BRE 대신 ERE를 사용할 때 호환성 또는 유지 보수성에 큰 단점이 있습니까?기본 정규 표현식 대신 확장 정규 표현식을 안전하게 사용할 수 있습니까?
답변
나는 "BRE 대 ERE"가 요즘 매우 유용한 구분이라고 생각하지 않습니다. awk 및 gnu grep과 같은 ERE 기반의 많은 도구와 MySQL 및 Oracle과 같은 데이터베이스의 정규식 지원이 있지만 BRE는 사실상 각주입니다.
또한 최신 프로그래밍 언어에 내장 된 정규 표현식은 기능면에서 ERE를 능가합니다. JavaScript 중 가장 강력하지 않은 JavaScript조차도 캡처 링하지 않는 그룹, 마지 막일 수있는 한정어 및 미리보기를 지원합니다. 정규 표현식을 "ERE vs. ECMA +"로 분류하는 것이 더 도움이 될 것입니다. 그러나 그것보다 훨씬 많은 것이 있습니다.
Tcl에서 프로그래밍하는 경우 단어 경계를 맞추려면 \y
및 \m
을 사용합니다. JavaScript에서는 [\s\S]
을 사랑하게됩니다. 점 매치 - 개행 모드가 없기 때문입니다. Visual Studio에서 최소 일치를 위해 *?
및 +?
대신 @
및 #
을 사용합니다. 그리고 자바는 철저히 현대적인 정규 표현식을 가지고 있지만, 정규식 리터럴과 원시/리터럴/축 어적 문자열 표기법이 없기 때문에 어쨌든 모든 백 슬래시를 보지 않아도 눈이 멀어집니다.
실제로 이것은 실제로 어쨌든 선택해야하는 것은 아닙니다. 일단 당신이 어떤 도구를 고용하기로 결정했는지, 당신이 요구하는 어떤 정규 표현식을 사용합니다.
분명히 단점이 있지만, 이것은 분명히 작성한 새로운 정규식에는 영향을 미치지 않습니다. 나는 항상 확장 정규 표현식을 사용한다. 사실, 이것은 요즘 대부분의 정규 표현식 라이브러리에 대한 기본값이므로, 그냥 플로우를 따라 가십시오.
환경 및 대상에 따라 다릅니다.
BRE가 점점 희박 해지고 있으며,이 시점에서 더 많은 도구가 BRE보다 ERE를 지원할 것으로 생각됩니다. grep (GNU 변형)조차 이제는 기본값이됩니다.
'BRE'라는 대부분은 실제로 BRE가 아닙니다. 메타 문자로 기능하는 것이 있다면 | + ?
보다 BRE가 실제로는 BRE가 이스케이프되지 않습니다.
필자는 BRE가 예외이며 환경을 필요로하는 것이없는 한 피해야한다고 생각합니다.
- 1. 주어진 정규 표현식을 제외한 모든 정규 표현식
- 2. Fitnesse Framework 정규 표현식을 사용할 수 있습니까?
- 3. struts-config.xml에서 정규 표현식을 사용할 수 있습니까?
- 4. fgrep에서 정규 표현식을 사용할 수 있습니까?
- 5. 정규 표현식 확장 프로그램 찾기
- 6. 정규 표현식
- 7. 이맥스 정규 표현식 빌더 교체 - 정규 표현식
- 8. 확장 정규 표현식을 .NET 호환으로 변환 RegEx
- 9. 정규 표현식
- 10. 정규 표현식
- 11. 정규 표현식
- 12. 정규 표현식
- 13. 정규 표현식
- 14. 정규 표현식
- 15. 정규 표현식
- 16. 정규 표현식 매치 나 정규 표현식을 사용하고 특정 문자열
- 17. 정규 표현식 생성
- 18. 방법 다음을 수행합니다 나는 정규 표현식을 찾고 정규 표현식
- 19. 는 정규 표현식
- 20. 초보자 정규 표현식 질문
- 21. 정규 표현식 대 KMP
- 22. Jmeter 중첩 정규 표현식
- 23. C에서 정규 표현식
- 24. 정규 표현식 질문
- 25. URL 친절한 정규 표현식
- 26. javascript 정규 표현식
- 27. 정규 표현식 보조
- 28. 정규식 내 정규 표현식
- 29. 정규 표현식 - #
- 30. 정규 표현식 : //