이 글에서는 정규식의 다중선 모드와 단일선 모드의 그래픽 및 텍스트 분석을 주로 소개합니다. 필요한 친구들은 참고하면 됩니다
Expresso에서 "다중선 모드"를 테스트해 보세요
테스트 1
참고: 여기 샘플 텍스트에는 3eeeee 뒤에 캐리지 리턴이 없으며 커서는 e 바로 뒤에 있습니다. 위의 검색 결과 영역에 표시된 대로 일치 결과는 3eeeeee입니다.
여기서 1abcde와 2abc가 일치하지 않는 이유는 무엇인가요?
여러 줄 모드 활성화
^ 문자열 의 시작 부분(문자열의 시작 위치)과 일치하거나 줄의 시작 부분(즉, 개행 문자 뒤의 위치)과 일치할 수 있습니다. n)
$ 문자열의 끝(문자 문자열의 끝 위치)과 일치할 수 있으며 줄의 끝(즉, 개행 문자 n 앞의 위치)과 일치할 수도 있습니다.
멀티 끄기 line mode
^ 문자열의 시작 부분만 일치할 수 있습니다
$ 문자열의 끝 부분만 일치할 수 있습니다
지식 포인트: r은 캐리지 리턴 문자, n은 줄 바꿈 문자입니다. Windows에서는 일반적으로 줄 바꿈이라고 부르는 것이 기본적으로 캐리지 리턴이 먼저이고 그 다음 줄 바꿈이 더 자세히 설명되어 있습니다.
위 그림과 같이 r은 [CR]과 일치하고 n은 [LF]와 일치합니다 <—— CR은 캐리지 리턴 LF는 줄 바꿈입니다.
여러 단락의 문자열(예:
ab
cd
e
) Windows에서 작동 시스템에서는 실제로 다음과 같습니다. ab[CR][LF]cd[CR][LF]e
Windows에서 텍스트의 캐리지 리턴 및 줄 바꿈은 0D 0A로 저장됩니다. 즉, 먼저 저장된 것이 "캐리지 리턴 r"
CR은 기호 'r'로 표시되며, ASCII 코드는 13입니다. 16진수 시스템은 0x0D입니다.
LF는 기호 'n'으로 표시되고, ASCII 코드는 10, 16진수는 0x0A입니다.
정규식: (?m)^(dw+)(s*)$
샘플 텍스트
일치 결과
Expresso 및 PHP에서 여러 줄 모드가 활성화되면 "$"는 문자열의 끝이나 "n" 앞의 위치와 일치합니다.
한 줄 모드
한 줄 모드 활성화: . 모든 문자와 일치할 수 있습니다(줄 바꿈 포함).
한 줄 모드 닫기: 줄 바꿈이 아닌 문자만 일치합니다. 기타 모든 문자(.는 r과 일치할 수 있음) 즉, n과 일치하지 않는 경우를 제외하고 모든 문자 )
다중 행 모드는 ^ 및 $의 일치에 영향을 미칩니다.
단일 행 모드의 일치는 ^ 또는 $ 또는 둘 다를 포함해야 합니다. m을 추가해도 의미가 없습니다
단선 모드와 다선 모드는 8극에 패할 수 없는 두 가지 개념입니다. 이 두 MS가 상호 배타적인 것은 정규 개발의 역사적 이유 때문입니다. Single-line 모드는 소수점 ""의 일치 범위에 영향을 줍니다.
Multi-line 패턴은 "^" 및 "$"의 일치 범위에 영향을 미칩니다.
다음 개념은 필연적인 연결이 없습니다. 전역 매칭, 다중 라인 모드 및 그리디 모드 사이
글로벌 모드는 일부 스크립트 언어에서만 볼 수 있는 개념입니다.
일치할 때 .NET의 Match 메서드와 유사하게 전역 모드를 끄고 .NET과 유사하게 전역 모드를 켭니다. Matches 메서드는 Java의 replacementFirst와 유사하게 교체를 수행할 때 전역 모드를 끕니다. , Java의 replacementAll과 유사한 전역 모드를 켭니다
(일치 수행 시 PHP의 preg_ match와 유사하게 전역 모드를 끕니다.
함수
위 내용은 여러 줄 모드 및 한 줄 모드 그래픽 분석_정규식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!