>백엔드 개발 >PHP 튜토리얼 >정규식 튜토리얼 - 하위 표현식 사용 분석

정규식 튜토리얼 - 하위 표현식 사용 분석

高洛峰
高洛峰원래의
2017-01-22 14:12:241293검색

이 기사의 예에서는 정규식 튜토리얼의 하위 표현식 사용법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

참고: 모든 예제에서 정규식 일치 결과는 소스 텍스트의 [and] 사이에 포함됩니다. 일부 예제는 java를 사용하여 구현됩니다. Java 자체에서 정규식을 사용하는 방법은 해당 위치에서 설명합니다. 모든 Java 예제는 JDK1.6.0_13에서 테스트되었습니다.

1. 문제 소개

먼저, Windows 2000과 같은 일부 구문은 여러 단어로 구성되어 있지만 실제로는 줄 바꿈이 아닌 전체입니다. HTML 페이지에서 공백(즉, 줄바꿈 방지 공백)을 사용하여 브라우저의 한 줄에 표시되도록 할 수 있습니다. 이제 이러한 공백 여러 개를 일치시킬 수 있습니다.

텍스트: 운영 체제는 Windows 2000입니다.

정규식: nbsp;{2,}

결과: 운영 체제는 Windows 2000입니다.

분석: 여기에 사용된 패턴은 줄 바꿈이 아닌 2개 이상의 패턴과 일치하려고 합니다. 공백이지만 결과에서 볼 수 있듯이 nbsp;{2,} 패턴은 nbsp;;;;로 시작하는 텍스트와 nbsp;;와 같이 2개 이상의 연속 세미콜론이 있는 텍스트만 일치할 수 있기 때문에 일치하는 항목이 없습니다. ;;;.

앞서 언급한 반복 매칭은 반복 매칭 메타 문자 바로 앞의 문자를 여러 번 반복하는 것이므로 문자열을 여러 번 매칭하려면 어떻게 해야 할까요?

2. 하위 표현식

위에서 하위 표현식을 도출합니다. 하위 표현식은 더 큰 표현식의 일부입니다. 표현식을 여러 하위 표현식으로 나누는 목적은 해당 하위 표현식을 독립 요소로 사용하는 것입니다. 하위 표현식은 (and)로 묶어야 합니다. 따라서 이전 예의 정규식은 (nbsp;){2,}로 작성해야 합니다.

유효 연도와 일치하는 정규식을 살펴보겠습니다.

텍스트: 1988-11-13

정규식: (19|20)d{2}

결과: [1988]-11-13

분석: 이 예에서는 의미 없는 연도를 제외하기 위해 연도의 처음 두 자리는 19 또는 20으로 제한됩니다. 정규식 또는 연산자. 여기서 19|20은 하위 표현식, 즉 (19|20)에 들어가야 합니다. 그렇지 않으면 20으로 시작하는 연도만 일치할 수 있습니다.

3. 하위 표현식 중첩

하위 표현식은 다음과 같습니다. 중첩이 허용되며 여러 수준의 중첩이 허용됩니다. 이론상 중첩 수준에는 제한이 없습니다.

((A)(B(C))) 표현식에는 다음과 같은 하위 표현식이 있습니다.

1 ((A)(B(C)))

2(A)

3(B(C))

4(C)

총 4개가 있고, 0번째가 항상 전체를 나타냅니다. 표현. 다음 역참조에서는 n(n은 하위 표현식의 개수)을 통해 하위 표현식을 참조하는 방법을 소개합니다.

중첩된 하위 표현식의 예는 나중에 IPV4 주소와 일치하는 정규 표현식을 참조하세요.

이 글이 정규 표현식을 배우는 모든 분들에게 도움이 되기를 바랍니다.

더 많은 정규식 튜토리얼과 하위 표현식 사용법 분석 관련 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

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