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