.match란 무엇인가요?

.match란 무엇인가요?

.정규식을 사용할 때 점 문자가 일치한다고 들었습니다.모든 것.

개행 문자는 제외합니다 \n.

다른 예외가 있나요? NUL 문자 \0, 백스페이스 문자 \b또는 기타 인쇄할 수 없는 다양한 ASCII 문자는 어떻습니까?

이와 관련하여 다양한 유틸리티/프로그램(예: sed, awk, Perl 및 vim)이 다르게 작동합니까, 아니면 동일하게 작동합니까?

答え1

에서 info regex:

3.2 임의의 문자 연산자(`.')와 일치
===========================================

이 연산자는 단일 인쇄 또는 비인쇄 문자와 일치합니다.
일치하지 않는 한:

 새로운 팀
      구문 비트 "RE_DOT_NEWLINE"이 설정되지 않은 경우.

 유효하지 않은
      구문 비트 "RE_DOT_NOT_NULL"이 설정된 경우.

答え2

.[^\n]모든 표준 UNIX 정규식 스타일 과 동일 하지만 Windows에서는 일반적 [^\r\n]으로 Windows 스타일 줄 끝 구문으로 인해 발생합니다. 다른 플랫폼에서는 표준 개행 시퀀스가 ​​무엇인지 평가해야 합니다.

Perl 및 일부 다른 언어에서는 한 줄 패턴 .도 일치하므로 \n(또는 [\r\n]Windows 정규식 스타일 등에서) 실제로 모든 것과 일치합니다.

.예를 들어 POSIX 대괄호 표현식에서 점 문자는 리터럴 점과 일치합니다 .

答え3

어떤 것을 사용한다면플랜 9 유틸리티,아마도샘이 편집함, 구조를 사용하여일반적인 표현, 이것'. ' 메타문자는 모든 문자와 일치합니다.와는 별개로새로운 팀. 나는 "@"이 줄바꿈을 포함한 모든 단일 문자와 일치한다고 생각합니다. 속성구조적 정규식여러 줄 모드 또는 "줄 구조를 무시하는 모드" 작성을 권장합니다. 구조적인 정규 표현식이 있는 것 같습니다.Python 모듈Google 코드에서는 Google을 통해 더 이상 구현을 찾을 수 없습니다.

関連情報