zoukankan      html  css  js  c++  java
  • 第八章:回溯引用,前后一致匹配

    8.1 回溯引用匹配

     例子:匹配文本中标题标签及内容

      文本:

        <h1>hello world</h1>hello world<h2>hello world</h2>

        hello world

        <h2>hello world</h2>

        hello world

        <h3>hello world</h1>

      正则表达式:

        <[hH][1-6]>.*</[hH][1-6]>

      结果:

        <h1>hello world</h1>hello world<h2>hello world</h2>

        hello world

        <h2>hello world</h2>

        hello world

        <h3>hello world</h1>

      分析:

        问题1:之前提到过的.*为贪婪型,需要使用懒惰型(.*?进行匹配) 

        问题2:文本中存在前后不一致的标题标签,这是不需要匹配的

      正确的正则表达式:

        <[hH]([1-6])>.*?</[hH]1>

      结果:

        <h1>hello world</h1>hello world<h2>hello world</h2>

        hello world

        <h2>hello world</h2>

        hello world

        <h3>hello world</h1>

    追溯引用指的是模式的后半部分引用在前半部分中定义的子表达式,你可以把回溯引用想象成变量。1代表的是模式中第一个子表达式,2代表第二个子表达式,以此类推...

  • 相关阅读:
    uva 10269(floyd+Dijkstra)
    Codeforces Round #223 (Div. 2) 解题报告
    uva 11280(Dijkstra+递推)
    uva 10246(变形floyd)
    闲来无事:跳台阶
    opencv和javacv版本不一致
    javaCV:爱之初体验
    mevan引入容联云通讯jar
    复杂度函数的表示
    MySQL与mabits大小比较、日期比较示例
  • 原文地址:https://www.cnblogs.com/changlezhong/p/9118688.html
Copyright © 2011-2022 走看看