이 기사의 예에서는 정규식 튜토리얼 전후의 둘러보기를 설명합니다. 다음과 같이 참조용으로 모든 사람과 공유하십시오.
참고: 모든 예에서 정규식 일치 결과는 소스 텍스트의 [and] 사이에 포함됩니다. Java 자체의 정규식에 대한 설명은 해당 위치에서 설명합니다. 모든 Java 예제는 JDK1.6.0_13에서 테스트되었습니다.
1. 문제 소개
HTML 페이지에서 페이지의 태그 일치, 즉
텍스트:
정규 표현식: .*? [Tt][Ii][Tt][Ll][Ee]>
결과:
【< ; TITLE>내 페이지에 오신 것을 환영합니다분석: 패턴은 제목 태그와 그 사이의 텍스트와 일치하지만 태그 자체가 아닌 제목 태그 사이의 텍스트만 필요하기 때문에 완벽하지는 않습니다. 이 문제를 해결하려면 Lookaround를 사용해야 합니다.
2. 정방향 검색
정방향 검색은 일치해야 하는 패턴을 지정하지만 결과에 반환되지 않습니다. 정방향 검색은 실제로 ?=로 시작하는 하위 표현식이며 일치할 텍스트는 = 뒤에 옵니다.
URL 주소의 프로토콜 부분을 일치시키는 예를 살펴보세요.
텍스트: http://blog.csdn.net/mhmyqn
정규 표현식: .+ (?=:)
결과: [http]://blog.csdn.net/mhmyqn
분석: URL 주소의 프로토콜 부분은 이전 부분:, 패턴 .+ 일치하는 모든 텍스트, 하위 표현식(?=:)은 다음과 일치하지만 일치하는:은 결과에 나타나지 않습니다. ?=를 사용하여 정규식 엔진에:이 발견되면 괜찮지만 최종 반환 결과에는 포함되지 않음을 나타냅니다. 여기서 정방향 일치(?=:)를 사용하지 않고 (:)를 직접 사용하면 일치 결과는 http:가 되며 여기에는 다음이 포함됩니다. 이는 우리가 원하는 것이 아닙니다.
참고: 앞 뒤 검색은 패턴과 검색할 텍스트 사이의 상대적인 위치를 의미합니다. 왼쪽은 앞, 오른쪽은 뒤입니다. 즉, 정방향 검색은 xxx(?=xxx)이고, 역방향 검색은 (?
3. 역방향 검색
역방향 검색 연산자는 ?
예를 들어 텍스트($로 시작하고 뒤에 숫자가 옴)에서 가격을 찾으려는 경우 결과에 통화 기호가 포함되지 않습니다.
텍스트: 카테고리1:$136.25 ,category2:$28,category3:$88.60
정규식: (?
결과: Category1:$【136.25】,category2:$【28 】,category3:$【88.60】
분석: (?
참고: 정방향 검색 패턴의 길이는 가변적이며 ., *, +와 같은 메타 문자를 포함할 수 있지만 역방향 검색 패턴은 고정 길이만 가능하며 ., *, 메타 문자를 포함할 수 없습니다. +처럼.
4. 정방향 검색과 역방향 검색 결합
정방향 검색과 역방향 검색을 함께 사용하여 이전 HTML 태그 사이의 텍스트 문제를 해결하세요.
텍스트:
정규 표현식: (? ).*?(?= [Tt][Ii][Tt][Ll][Ee]>)
결과:
분석: 결과에서 알 수 있듯이 문제는 완벽하게 해결되었습니다. (?)는
5. 정방향 및 역방향 검색을 무효화
앞서 언급한 정방향 검색과 역방향 검색은 일반적으로 텍스트를 일치시키는 데 사용되며, 그 목적은 반환될 일치 결과를 결정하는 것입니다. (일치하는 결과 앞에 어떤 텍스트가 뒤에 있어야 하는지 지정하여) 이러한 사용법을 정방향 검색 및 정방향 검색이라고 합니다. 또한 주어진 패턴과 일치하지 않는 텍스트를 찾는 부정적인 정방향 검색과 부정적인 역방향 검색이 있습니다. 전후 검색 연산자
:
예를 들어 텍스트에 가격($로 시작하고 숫자가 옴)과 수량을 찾으려면 먼저 가격을 찾아보겠습니다.
텍스트: 사과 10개, 오렌지 15개, 배 10개에 30달러를 지불했습니다. 이 주문으로 5달러를 절약했습니다.
정규 표현식: (?
결과: 지불했습니다. 이 주문으로 사과 10개, 오렌지 15개, 배 10개에 [$30]를 절약했습니다.
정규식: b(?
결과: 사과 【10】개, 오렌지 【10】개에 대해 30달러를 지불했습니다. 이 주문으로 5달러를 절약했습니다.
분석: (?
6. 요약
정방향 및 역방향 검색을 통해 최종 일치 결과에 어떤 내용이 포함될지 정밀하게 제어할 수 있습니다. 이전 및 이후 검색 작업을 통해 하위 표현식을 사용하여 텍스트 일치 작업이 발생하는 위치를 지정하고 일치만 하고 소비하지 않는 효과를 얻을 수 있습니다.
이 글이 정규 표현식을 배우는 모든 분들에게 도움이 되기를 바랍니다.
더 많은 정규식 튜토리얼을 보려면 PHP 중국어 웹사이트에서 이전과 이후의 자세한 둘러보기 관련 기사를 주목하세요!