정규 표현식 변형이 너무 많은 이유는 무엇입니까? [닫은]


14

오늘 프로젝트의 소스 코드를 검토 한 결과, 각 줄 끝에 불필요한 "공간"과 "탭"이 많이 있습니다. 그래서 정규 표현식으로 삭제하기로 결정했습니다.

그러나 명령 sed -i '/\s+$/d'이 작동하지 않는다는 것을 알았습니다 . 명령을로 변경하기 전까지 see -ri '/\s+$/d'는 제 예상대로 작동했습니다. 의 매뉴얼에서 확장 정규 표현식을 호출 sed한다고 말했다 -r.

혼란 스럽습니다. 왜 많은 정규 표현식 변형이 있습니까? vim / emacs / perl / sed regexp와 같습니다. 정규식이 고유 한 사용자 인터페이스를 제공 할 수없는 이유는 무엇입니까?

답변:


19

역사적 이유로. "정규 표현식"구문에 대한 정의는 없습니다. 정규 표현식 자체의 개념은 공식적으로 설명하는 실제 구문과 아무 관련이 없습니다. 사람들은 같은 것을 말하는 다른 방법을 생각해 냈으므로 다른 스타일의 정규 표현식 구문을 사용했습니다.

그러나 요즘에는 대부분 두 가지 정의 그룹이 있습니다.

  1. 기본 (BRE) 및 확장 정규식 (ERE)을 지정하는 POSIX 정규식 . 예를 들어, 기본 정규 표현식\( \)이 그룹을 나타내는 데사용되고확장 정규 표현식이이를 사용하는경우 혼란이 시작됩니다( ).

  2. 펄 기반 정규 표현식 . Perl 정규식은보다 일관된 구문을 정의합니다. 예를 들어 백 슬래시는 항상 영숫자가 아닌 문자를 이스케이프합니다. Perl 정규식 구문은 요즘 Java에서 Ruby에 이르기까지 많은 인기있는 프로그래밍 언어에서 찾을 수 있습니다.

자세한 내용은 정규식 구문에 대한 Wikipedia 기사를 확인하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.