`
wkf41068
  • 浏览: 457670 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

正则回溯引用在替换中的应用

阅读更多
正则的回溯引用在替换操作中的应用


正则表达式适合用于复杂的替换,尤其是需要使用回溯引用的场合,这样才能体现出正则表达式的威力。
现在一Html中有如下的文本: Hello , wangvipjian@163.com is my email address. 需要将email邮箱全都转换为可点击的连接,该怎么办:

1. 先找出email Address . 可使用正则表达式模式:    

2. 使用正则表达式完成替换。

正则表达式: \w+[\w\.]*@[\w\.]+\.\w   结果: wangvipjian@163.com

现在需要使用<a href="mailto:wangvipjian@163.com">wangvpjian@163.com</a>这样的语法来常见一个可点击的电子邮件地址。 

此时就需要用到回溯引用:

正则表达式:(\w+[\w\.]*@[\w\.]+\.\w )  替换:<a href="mailto:$1">$1</a>


替换操作需要用到两个正则表达式: 一个用来给出搜索模式,另一个用来给匹配文本的替换模式。 回溯引用可以跨模式使用,在第一个模式里

被匹配的子表达式可以用在第二个模式里。 这里使用的模式(\w+[\w\.]*@[\w\.]+\.\w ) 与之前使用的完全一样(匹配电子邮件)但是这次把它写成了

一个子表达式。 这样一来,被匹配到的文本就可以用在替换模式力量。



关注: 回溯引用语法在不同的正则表达式实现里有很大的差异: javaScript 用户需要用$来代替\。

提示: 同一个子表达式可以被引用任意多次---只要在需要用到它的地方写出它的回溯引用就行了。

[b]为了加强理解,再引入另一个实例:[/b]
将下面每行的文本重新写成: (231) 458-098.
432-789-780
347-092-929
280-021-345

正则表达式: (\d{3})(-)(\d{3})(-)(\d{3})   替换:($1) $3$5

注意: 在对文本进行重新排版的时候,把文本分解成多个子表达式的做法往往非常有用,可以让我们对文本的排版效果做到精细的控制。
大小写转换: 有些正则表达式容许我么您使用下面的元字符对字母进行大小写转换。

\E  结束\L和\U转换	
\l  把下一个字符转换为小写	\L  把\L到\E之间的字符全部转换为小写
\u  下一个字符转换为大写	\U  把\L到\E之间的字符全部转换为大写

小例: 讲<h1></h1>的标题文字转换为大写。  正则: (<[Hh]1>)(.*?)(</[Hh]1>)   替换:$1\U$2\E$3


小结
回溯引用离不开子表达式,子表达式的存在给回溯引用带来可能。
回溯应用在搜索+替换中非常有用。
分享到:
评论

相关推荐

    C# 正则 批量查找替换 可后向引用 运行程序

    在替换操作中,我们可以用`\1`(对于第一个捕获组)来引用这个数字,即回溯到先前匹配的数字。 C#的`Regex.Replace`方法支持后向引用。例如,如果我们有一个字符串`"id123=abc;id456=def"`,我们想把`id`后面跟的...

    正则表达式中文学习手册

    8. **实践应用**:结合实例,学习在编程语言(如JavaScript、Python、Java等)中如何使用正则表达式进行文本处理,如搜索、替换、分割等操作。 9. **调试技巧**:学习使用正则表达式测试工具,如在线的RegExr或...

    精通正则表达式&正则表达式经典实例

    通过《精通正则表达式》这本书,你可以深入理解正则表达式的内部机制,学习高级特性如回溯、后向引用和递归等。而《正则表达式经典实例》则提供了大量实用示例,帮助你在实践中巩固所学,解决实际问题。 学习并掌握...

    正则表达式应用程序.

    正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和分析字符串模式。在编程领域,正则表达式(Regular Expression,简称regex)被...在实际应用中,理解并灵活运用正则表达式是提升IT专业技能的关键一步。

    正则表达式:深入理解与应用.zip

    本文将从基本概念、语法结构、元字符、量词、预查、分组以及在不同编程语言中的应用等方面展开讨论,旨在帮助读者掌握正则表达式的精髓并灵活运用。 1. **基本概念** - **模式匹配**:正则表达式就是一种模式,...

    精通正则表达式(第三版)简体中文版

    本书《精通正则表达式(第三版)简体中文版》主要介绍了正则表达式的概念、语法以及如何在不同的环境中高效地使用正则表达式。 #### 二、正则表达式的语法基础 1. **元字符**:正则表达式中的特殊字符,用于指定...

    正则表达式调试工具

    在实际应用中,正则表达式常用于数据验证,如邮箱、电话号码格式的检查;文本搜索和替换,如批量修改文档中的特定模式;以及在编程语言中作为字符串处理的利器,如Python的`re`模块,JavaScript的`match`、`search`...

    正则表达式培训演讲(内部材料)

    在这个“正则表达式培训演讲”内部材料中,我们有望深入理解这一主题,结合C#编程语言,进一步提升在实际项目中的应用能力。 在C#中,正则表达式通过System.Text.RegularExpressions命名空间中的Regex类进行操作。...

    正则表达式经典实例 pdf 中文

    7. **在不同编程语言中的应用**: 如 Python 的 re 模块,JavaScript 的 RegExp 对象等。 8. **性能优化**: 如避免使用全局搜索时的回溯,合理使用贪婪和非贪婪匹配。 通过阅读《正则表达式经典实例》这本书,读者...

    正则表达式宝典,强力推荐

    5. **分组与回溯引用**:讨论如何通过分组捕获多个匹配项,并在后续表达式中使用回溯引用进行复杂的模式匹配。 6. **零宽断言**:介绍如"lookahead"(前瞻断言)和"lookbehind"(后顾断言)这样的高级特性,它们...

    经典的正则比对工具

    在IT行业中,熟练掌握正则表达式是提高工作效率的关键技能之一。本篇将深入探讨正则表达式的核心概念、语法、以及常用的比对工具。 1. **正则表达式基础** - **元字符**:正则表达式中的特殊符号,如 `.` 表示任意...

    正则表达式必知必会pdf

    使用子表达式7.1 什么是子表达式7.2 子表达式7.3 子表达式的嵌套7.4 小结第8章 回溯引用:前后一致匹配8.1 回溯引用有什么用8.2 回溯引用匹配8.3 回溯引用在替换操作中的应用8.4 小结第9章 前后查找9.1 前后查找9.2 ...

    中文正则表达式简单易懂

    ### 正则表达式在Python中的应用 #### 一、正则表达式的概念与起源 正则表达式(Regular Expression,简称RE),是一种强大的文本处理工具,在计算机科学领域有着广泛的应用。它允许用户灵活地检查或者操作字符串...

    正则表达式素材5

    正则表达式是计算机科学中的一个重要概念,广泛应用于文本处理、数据验证、搜索与替换等多个领域。本资源包“正则表达式素材5”聚焦于正则表达式的入门学习,结合了经典教材《正则表达式入门经典》的扫描版和其他...

    java .net 正则表达式调试器

    调试器还提供了错误检测功能,当正则表达式存在语法错误或者逻辑错误时,会给出明确的提示,避免了在实际应用中出现意料之外的结果。此外,对于那些运行环境需求较高的应用程序,如本文提到的调试器,通常需要.NET ...

Global site tag (gtag.js) - Google Analytics