>  기사  >  백엔드 개발  >  PHP 정규식의 자세한 구문

PHP 정규식의 자세한 구문

小云云
小云云원래의
2017-11-10 16:39:432025검색

PHP 정규 표현식은 특정 구문 규칙을 준수하는 일련의 문자열을 설명하거나 일치시키는 데 사용되는 단일 문자열을 나타냅니다.
정규식은 문자열 연산을 위한 논리식으로, 미리 정의된 특정 문자와 이러한 특정 문자의 조합을 사용하여 "규칙 문자열"을 형성합니다.

정규식과 다른 문자열이 제공되면 다음 목표를 달성할 수 있습니다.

1. 주어진 문자열이 정규식의 필터링 논리("일치"라고 함)를 준수하는지 여부

2. 문자열에서 원하는 특정 부분을 얻으려면

정규 표현식은 일반 문자(예: a~z 문자)와 특수 문자(메타 문자라고 함)로 구성된 텍스트 패턴입니다. 패턴은 텍스트 본문을 검색할 때 일치시킬 하나 이상의 문자열을 설명합니다. 정규식은 검색된 문자열과 문자 패턴을 일치시키는 템플릿 역할을 합니다.

Quote

/

다음 문자를 특수 문자, 리터럴 문자, 역참조 또는 8진수 이스케이프 문자로 표시하세요. 예를 들어 'n'은 문자 "n"과 일치합니다. '/n'은 개행 문자와 일치합니다. 시퀀스 '//'는 "/"와 일치하고 "/("는 "("와 일치합니다.

^ 

는 입력 문자열의 시작과 일치합니다.

$ 

은 입력 문자열의 끝과 일치합니다.

*

는 이전 하위 표현식과 0회 이상 일치합니다. 예를 들어 zo*는 "z"와 일치할 수 있으며 *는 {0,}와 동일합니다.

+

는 이전 하위 표현식과 일치합니다. 예를 들어 'zo+'는 "zo" 및 "zoo"와 일치하지만 "z"는 일치하지 않습니다.


는 이전 하위 표현식과 0회 또는 1회 일치합니다. (es)?"는 "do" 또는 "does"의 "do"와 일치할 수 있습니다. ? {0,1}과 동일합니다.

{n,} 


n은 음수가 아닌 정수입니다. 최소 n번 일치합니다. 예를 들어 'o{2,}'는 'Bob'의 'o'와 일치할 수 없지만 'foooood'의 모든 o와 일치할 수 있습니다. 'o{0,}'는 'o*'와 동일합니다. {n,m} 

m과 n은 모두 음수가 아닌 정수입니다. 여기서 n <= m은 최대 m번 일치합니다. "o{1,3}"은 "fooooood"의 처음 세 개의 o와 일치합니다. 'o{0,1}'은 'o?'와 동일합니다. 쉼표와 두 숫자 사이에는


?

이 문자가 다른 제한 기호(*, +, ?, {n}, {n,}, {n,m}), 일치 패턴은 비탐욕적입니다. 비탐욕 모드는 검색된 문자열과 가능한 한 적게 일치하는 반면, 기본 그리디 모드는 최대한 많이 일치합니다. 예를 들어, 문자열 "oooo"의 경우 'o+?'는 단일 ".o"와 일치하고 'o+'는 모든 'o'와 일치합니다.

"/n"을 제외한 모든 단일 문자와 일치합니다. .'/n'을 포함한 모든 문자를 일치시키려면 '[./n ]' 패턴을 사용하십시오. 

 (pattern)

일치하는 항목을 생성된 항목에서 얻을 수 있습니다. VBScript의 SubMatches 컬렉션과 Visual Basic Scripting Edition의 $0 속성을 사용하여 괄호 문자를 일치시키려면 '/(' 또는 '/)'를 사용하여 나중에 사용할 수 있습니다. "or" 문자(|)를 사용하는 패턴입니다. 예를 들어 'industr(?:y|ies)는 'industry|industries'보다 짧은 표현입니다.

(?=pattern)

정방향 조회는 패턴과 일치하는 문자열의 시작 부분에서 검색 문자열을 일치시킵니다. 이는 가져오지 않는 일치입니다. 즉, 나중에 사용하기 위해 일치 항목을 가져올 필요가 없습니다. 예를 들어, 'Windows (?=95|98|NT|2000)'는 "Windows 2000"의 "Windows"와 일치하지만 "Windows 3.1"의 "Windows"와 일치하지 않습니다. 프리페치는 문자를 소비하지 않습니다. 즉, 일치가 발생한 후 다음 일치 항목에 대한 검색은 프리페치를 포함하는 문자 뒤에서 시작하는 것이 아니라 마지막 일치 직후에 시작됩니다.

(?!패턴)

  부정 예측은 패턴과 일치하지 않는 문자열의 시작 부분에 있는 검색 문자열과 일치합니다. 부정 예측은 문자열이 패턴과 일치하지 않는 모든 지점에서 검색 문자열과 일치합니다. 이는 가져오지 않는 일치입니다. 즉, 나중에 사용하기 위해 일치 항목을 가져올 필요가 없습니다. 예를 들어, 'Windows(?!95|98|NT|2000)'는 "Windows 3.1"의 "Windows"와 일치하지만 "Windows 2000"의 "Windows"와는 일치하지 않습니다. 사전 검사는 문자를 소비하지 않습니다. 즉, 일치가 발생한 후 사전 검사가 포함된 문자 다음에 시작하는 것이 아니라 마지막 일치 직후에 다음 일치 항목에 대한 검색이 시작됩니다.

요약:

위는 PHP 정규식 수식의 일부 문법적 세부정보입니다. 동시에 우리는 정규식의 특징이 다음과 같다는 것을 알고 있습니다.

1. 매우 유연하고 논리적이며 기능적입니다.

2. 문자열의 복잡한 제어는 매우 간단한 방법으로 신속하게 달성할 수 있습니다.

3. 처음 접하는 사람들에게는 상대적으로 모호하고 이해하기 어렵습니다.

관련 권장 사항:

정규 표현식 적용

PHP 정규 표현식의 수정자는 무엇입니까

php 정규 표현식 튜토리얼: 항목에서 마스터까지 정규 표현식

위 내용은 PHP 정규식의 자세한 구문의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.