`
grez
  • 浏览: 5453 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

正则表达式学习 3 选择、分组和后向引用

 
阅读更多
选择可以在两种或者更多的模式中选择一个
如 (The|the|THE) 匹配 THE RIME OF THE ANCYENT MARINERE, IN SEVEN PARTS.
也可以使用 (?i)the 达到相同效果(不区分大小写)。
 
正则表达式中的选项
(?d) Unix中的行
(?i) 不区分大小写
(?J) 允许重复的名字
(?m) 多行
(?s) 单行(dotall)
(?u) Unicode
(?U) 默认匹配最短
(?x) 忽略空格和注释
(?-...) 复原或关闭选项
 
子模式(t|T)h(e|eir) 匹配the The their Their
子模式括号不是必须的
使用字符组的子模式\b[tT]h[ceinry]*\b 可以匹配thee thence之类的
 
使用\1 或$1可以后向引用之前用圆括号捕获的内容 (\d)\d\1 可以匹配101
 
也可以给分组命名,这样引用的时候就可以用名字而不是数字了
如 用(?<one>it is)命名 用$+{one} 引用
命名分组的语法
(?<name>...) 命名分组
(?name...) 另一种命名分组的方式
(?P<name>...)    Python中命名分组
\k<name>       Perl中引用
\k'name'          Perl中引用
\g{name}        Perl中引用
\k{name}        .Net中引用
(?P=name)      Python中引用
 
不想引用分组的时候可以使用非捕获分组,由于不在内存中存储所以性能较高
比如(the|The|THE)就是
也可以这么写(?i)(?:the)
也可以这样(?:(?i)the)
更推荐这样(?i:the)
 
另一种非捕获分组是原子分组,如果用正则表达式引擎进行回溯,这种分组就可以将回溯操作关闭,它只针对原子分组内的部分,而不针对整个正则表达式
如(?>the)
原子分组主要与性能有关,书上没有过多介绍
分享到:
评论

相关推荐

    正则表达式转换工具

    - 学习高级特性:如分组、后向引用、正向预查等,增强表达能力。 - 实践应用:通过实际项目,不断实践和积累经验。 - 工具支持:利用在线正则表达式测试网站,如Regex101,进行实时调试和学习。 综上所述,"正则...

    正则表达式学习资料以及练习项目代码很多

    这个压缩包包含了丰富的正则表达式学习资源,适合有一定基础的初学者深入学习。 1. **基础概念** - **模式匹配**:正则表达式定义了一种模式,可以用来匹配符合该模式的字符串。 - **元字符**:如`.`代表任意单个...

    正则表达式测试工具C#版(src)

    正则表达式是一种强大的文本...通过深入研究这个C#版的正则表达式测试工具源码,开发者不仅可以巩固正则表达式的基础知识,还可以提升在C#环境中应用正则表达式的能力,同时学习到UI设计和事件处理等方面的实践技巧。

    正则表达式学习手册

    ### 正则表达式学习手册知识点总结 #### 1. 引言 正则表达式是一种强大的文本处理工具,能够帮助用户实现字符串的查找、替换等功能。正则表达式的应用场景非常广泛,尤其在编程领域中不可或缺。对于初学者来说,...

    正则表达式学习工具

    本“正则表达式学习工具”是专为C#初学者和开发者设计的,旨在提供一个方便的环境来学习和测试正则表达式。 首先,我们来了解C#中的正则表达式基础。C#中的正则表达式操作主要通过`System.Text.RegularExpressions`...

    易语言正则表达式学习工具源码

    易语言正则表达式学习工具源码是一款专为学习易语言和正则表达式设计的软件开发资源。正则表达式(Regular Expression)是用于处理字符串的强大工具,它在编程中有着广泛的应用,如文本搜索、替换、数据验证等。...

    正则表达式学习资料整理

    在这个“正则表达式学习资料整理”中,我们主要探讨的是如何理解和运用正则表达式进行四则运算相关的匹配。 首先,我们需要了解正则表达式的基本构成元素。它们包括: 1. **字符类**:用方括号`[]`定义,如 `[0-9]...

    正则表达式生成工具,正则表达式生成工具

    3. **语法提示**:提供正则表达式语法的详细提示和参考,帮助用户理解和学习正则表达式中的各种符号和结构,如点号(.)、星号(*)、加号(+)、问号(?)、括号(())、管道符(|)等。 4. **测试集**:允许用户...

    正则表达式.rar正则表达式.rar正则表达式.rar正则表达式.rar正则表达式.rar

    正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索、替换操作。在编程语言中,正则表达式(Regular Expression)被广泛应用于数据验证、文本提取、数据清洗等多个领域。它们通过使用特定的语法...

    正则表达式调试工具

    3. **经典例程**:内建了各种经典的正则表达式示例,方便学习和参考,有助于开发者快速掌握正则表达式的常见用法。 4. **跨平台**:虽然题目并未明确指出该工具的具体跨平台特性,但通常这意味着它可以在不同的操作...

    正则表达式学习课件PPT

    本课件“正则表达式学习课件PPT”旨在为初学者提供一个基础的正则表达式学习平台,特别地,通过使用C#语言来演示其应用。 首先,我们需要理解正则表达式的基础语法。正则表达式由一系列特殊字符和普通字符组成,...

    C#字符串和正则表达式参考手册

    `等,以及字符类、分组、后向引用等高级特性。 学习和熟练掌握C#中的字符串和正则表达式,能够极大地提升你在处理文本数据时的效率和灵活性。在实际开发中,结合`StringBuilder`类处理大量字符串拼接,以及利用正则...

    正则表达式学习资料

    在这个"正则表达式学习资料"中,我们将深入探讨正则表达式的基本概念、语法以及在Java中的应用。 1. 正则表达式基础: - **模式匹配**:正则表达式是由字符和特殊符号组成的字符串,用于定义一种模式,可以用来...

    正则表达式基础正则表达式基础

    3. 后向引用:在正向预查或后向查找中,可以使用`\数字`引用前面的分组,实现更复杂的匹配逻辑。 总的来说,正则表达式是一种强大的文本处理工具,理解和掌握其基本概念和高级技巧,能极大地提升对文本数据的处理...

    JAVA正则表达式大全

    正则表达式的学习需要对元字符、量词、预查、后向引用等概念有深入理解,同时掌握Java中`Pattern`和`Matcher`的使用方法,结合实际案例进行实践,才能灵活运用到实际项目中。在处理字符串相关问题时,熟练掌握正则...

    vb正则表达式实例(正则表达式测试程序)

    在VB.NET中,正则表达式...总之,“vb正则表达式实例”是一个实用的工具,它通过图形界面帮助开发者直观地测试和学习正则表达式。了解并熟练掌握正则表达式在VB.NET中的使用,将极大地提升你在文本处理方面的编程能力。

    强大的正则表达式生成工具 C#版

    6. **教程和文档**:提供详细的正则表达式使用指南和C# API参考,帮助用户学习和理解正则表达式。 7. **版本控制**:保存和加载正则表达式模式,便于项目管理。 8. **错误检查**:检测并提示正则表达式中的语法...

    精通正则表达式中文版英文版_中文版为扫描版

    正则表达式是一种强大的文本处理工具,用于在字符串中匹配、查找、替换或者提取特定模式。它是编程语言中不可或缺的一部分,特别是...无论是选择中文扫描版还是英文电子版,都能让你在正则表达式的学习道路上更进一步。

    Python基础入门知识之正则表达式学习 正则表达式30分钟入门教程 共21页.pdf

    为了进一步学习,可以查阅Python官方文档的`re`模块,以及各种正则表达式在线教程和练习网站。 通过这个简短的教程,你应该对Python中的正则表达式有了初步的了解。继续实践和探索,将有助于你更好地掌握这一强大...

Global site tag (gtag.js) - Google Analytics