`

正则表达式之<七>回溯引用:前后一致

 
阅读更多
子表达式是为了把一组字符编组为一个字符集合,回溯引用是针对于子表达式来的。

场景:
有这样一个文本:
<BODY>
<H1> content H1 test </H1>
<BR> content BR test </BR>
<H2> content H1 test </H2>
<H3> content H1 test </H4>
</BODY>

假设正则如下:
<[Hh][0-6]>.*?</[Hh][0-6]>

匹配结果如图:



很明显这不是我们想要的结果因为<H3> content H1 test </H4>这是一条非法的数据,不应该匹配。

所以采用([0-6])作为一个组。
正则表达式为:
<[Hh]([0-6])>.*?</[Hh]\1>
这里的\1就表示引用上一次组里的数据,保持数据一致。
匹配结果如图:




\1代表什么意思呢?
它代表着模式里的第一个子表达式,\2代表着第二个子表达式,\3代表第三个,以此类推。
分享到:
评论

相关推荐

    获取网页表格数据 正则表达式

    :&lt;td&gt;(.*?)&lt;\/td&gt;)*&lt;\/tr&gt; ``` 这个表达式会找到`&lt;tr&gt;`标签,并捕获其中所有的`&lt;td&gt;`及其内容。`(?:...)`是非捕获组,避免捕获这部分匹配。 **实际应用** 在Python中,你可以使用`re`模块来执行这些正则表达式,...

    正则表达式分析工具

    经过正则表达式过滤后的字符串&lt;br&gt;&lt;br&gt;软件需要 .Net Framework 1.1 支持,可到http://www.bicesoft.com下载.&lt;br&gt;&lt;br&gt;版本更新:&lt;br&gt;1.0&lt;br&gt;实现该对正则表达式的分析功能,得出匹配字符串&lt;br&gt;&lt;br&gt;1.9&lt;br&gt;改进对正则...

    正则表达式(regular expression)

    正则表达式(regular expression) &lt;br/&gt; 原著:笑容&lt;br/&gt; 创作于:2004年05月03日&lt;br/&gt;最后更新:2004年05月04日 21:12&lt;br/&gt;引用地址:正则表达式(regular expression)&lt;br/&gt;版权声明:使用创作公用版权协议&lt;br/&gt; ...

    正则表达式教学资料

    &lt;br&gt;&lt;br&gt;索引&lt;br&gt;&lt;br&gt;1._引子&lt;br&gt;2._正则表达式的历史&lt;br&gt;3._正则表达式定义&lt;br&gt;&lt;br&gt;3.1_普通字符&lt;br&gt;3.2_非打印字符&lt;br&gt;3.3_特殊字符&lt;br&gt;3.4_限定符&lt;br&gt;3.5_定位符&lt;br&gt;3.6_选择&lt;br&gt;3.7_后向引用&lt;br&gt;&lt;br&gt;4._各种操作...

    JavaScript正则表达式匹配 div style标签

    下面是一个简单的JavaScript示例代码,展示如何使用正则表达式匹配`&lt;div&gt;`和`&lt;style&gt;`标签: ```javascript // 示例字符串,包含div和style标签 var htmlString = '&lt;div&gt;这是一个div标签的内容。&lt;style&gt;这是style...

    js正则表达式校验数字、email、身份证号等

    js正则表达式校验数字、email、身份证号等

    正则表达式 到 NFA

    这是编译原理的一个实验, 是把一个正则表达式转化为不确定有穷自动机NFA的算法程序,朋兴趣的朋友可以下载来看看哦.&lt;br&gt; 一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式...

    正则表达式文法(BNF)

    - 包括`&lt;star&gt;`(星号运算)、`&lt;plus&gt;`(加号运算)和`&lt;elementary-RE&gt;`(元素正则表达式)。 ##### 2.6 `&lt;star&gt;` - 星号运算 ``` &lt;star&gt;::=&lt;elementary-RE&gt;"*" ``` **解释:** - `&lt;star&gt;`定义了星号运算,表示...

    正则表达式简介(微软篇)

    关于正则表达式:正则表达式简介(微软篇)之一正则表达式&lt;br/&gt;&lt;br/&gt;如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。&lt;br/&gt;&lt;br/&gt;请回想一下在硬盘上是如何...

    正则表达式系统教程

    索引&lt;br/&gt;&lt;br/&gt;1._引子&lt;br/&gt;2._正则表达式的历史&lt;br/&gt;3._正则表达式定义&lt;br/&gt;&lt;br/&gt;3.1_普通字符&lt;br/&gt;3.2_非打印字符&lt;br/&gt;3.3_特殊字符&lt;br/&gt;3.4_限定符&lt;br/&gt;3.5_定位符&lt;br/&gt;3.6_选择&lt;br/&gt;3.7_后向引用&lt;br/&gt;&lt;br/&gt;4._...

    c++写的正则表达式验证工具

    Boost库的正则表达式组件,即`boost::regex`,是C++实现正则表达式的常用选择之一,它提供了一套完整的API接口,使得在C++中编写正则表达式相关的代码变得相对简单。 在Visual Studio 2008环境下,开发者可以将...

    正则表达式转换工具

    正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,它用于匹配、查找、替换等操作,涉及字符串处理的各个领域。正则表达式转换工具是专门针对这一需求而设计的,它能帮助用户将输入的内容转换...

    C++ 使用正则表达式demo

    C++11及以后的标准中引入了`&lt;regex&gt;`库,提供了一套完整的正则表达式API,包括`std::regex_match`,`std::regex_search`和`std::regex_replace`等函数。但在VS2008中,由于该版本遵循的是C++03标准,因此不包含这些...

    Java使用正则表达式提取XML节点内容的方法示例

    List&lt;String&gt; resultList = new ArrayList&lt;&gt;(); Pattern p = Pattern.compile("&gt;([^&lt;]+)&lt;/"); Matcher m = p.matcher(html); while (m.find()) { resultList.add(m.group(1)); } return resultList; } ``` 这...

    jJAVA正则表达式替换字符

    本资源文件是我自己总结的,其中包括5个类,这5个类的代码基本概括了java正则表达式替换String的多种情况,比如获取某个文件路径中盘符/后边的部分内容,提取"&lt;title&gt;XXXX&lt;/title&gt;"中的文字XXXX,用正则表达式获取指定...

    正则表达式系统教程.CHM

    :/4.htm"&gt;2._正则表达式的历史&lt;/a&gt;&lt;br /&gt;&lt;/font&gt;&lt;a href="mk:@MSITStore:C:Documents%20and%20Settingschenxh桌面dsfCHM.chm::/5.htm"&gt;&lt;font size="2"&gt;3._正则表达式定义&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;a href=...

    运用正则表达式进行Web日志统计分析

    &lt;br&gt;稿件编号:07031903&lt;br&gt;&lt;br&gt;稿件名称:运用正则表达式进行Web日志统计分析&lt;br&gt;&lt;br&gt;源代码名称:运用正则表达式进行日志统计&lt;br&gt;&lt;br&gt;调试环境:Win XP;.Net&lt;br&gt;

    qt使用正则表达式限制lineEdit的输入,对正则表达式进行了封装,可以直接引入,工程编译正常

    使用这个封装好的模块,你可以避免重复编写正则表达式的验证代码,提高代码的可复用性和一致性。在压缩包中的myRegExp文件很可能是包含这个封装的源代码,你需要将其添加到你的项目中,并按照提供的文档或示例进行...

    常用js验证,正则表达式代码

    是开发人员常用到的验证!包括电话号码、手机号、身份证

Global site tag (gtag.js) - Google Analytics