`
swachian
  • 浏览: 74806 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

笔记5 正则表达式

阅读更多

 

2.匹配单个字符

A. 匹配会返回多个结果,包括位置长度

 

B.. 特殊字符 ,代表 可以匹配任何一个单个字符,通过\ 可以实现转义。.其实一般不包括

 

C. 正则表达式 给出的仅仅是模式(pattern) ,得到的返回是一个与该模式匹配的字符串

 

3. 匹配一组字符

[]  是用来定义一个字符集合的元字符。


能获得预期的匹配结果并不困难,困难的是不会匹配到你不想要的东西。


在[]内可以使用 - 作为区间字符。在同一个字符集合里可以给出多个字符区间。例如 A-Z 0-9 a-z A-F. 在[]之外,-并不是元字符。

 

取非匹配 ^ 来否定集合内所有的文字。

 

 

 

4. 特殊字符的元字符

A. 转义字符 \

 

B. 空白字符匹配 \n \r \f \t [\b]回退字符

 

C. 代表字符类 的元字符

\d [0-9]

\D [^0-9]

\w 任何一个字母数字或下划线

\W 任何一个非字母数字非下划线字符

\s 任何一个空白字符 不包括[\b]

\S 任何一个非空白字符

 

正则表达式很少有对错之分,前提是它们能解决问题。更精确 的匹配需要构造更复杂 的表达式。

 

 

 

5. 重复匹配(数量匹配)

A. 匹配一个或多个字符(字符集)使用元字符 + 做后缀

表示匹配一个或多个字符,至少一个,不匹配0个。在[]里面一般不用转义。甚至.在[]也将被解释为普通字符。

 

B. 匹配0个或多个字符(字符集)使用元字符 * 做后缀

表示0次或多次重复出现。

 

C. 匹配0个或1个字符(字符集)使用元字符 ? 做后缀

表示0次或1次出现,最多不超过一次。

 

有些人喜欢把一个字符也定义成一个集合,这么做的好处是可以增加可读性和避免产生误解,使人可以一眼看出哪个字符与哪个元字符相关关联

 

D. 匹配的重复次数。使用元字符 {}做后缀,把数值写在他们之间。

可以设置最大值,可以设置最小值,可以设置精确的数字和区间

{3} 定义重复3次

{2,4} {0, 3} , ?等价于{0, 1}

{3, } 匹配最小的重复次数,而不设定最大值。但小心别遗漏了{}里面的逗号。

 

E. 防止过度匹配(贪婪型和懒惰型)

*和+都是贪婪型元字符,匹配模式时总是多多益善 而不是适可而止 ,而不是碰到第一个匹配为止。

在这些元字符的后再加上元字符?,即成为懒惰型版本。

{}后面也可以加?

 

6. 位置(边界)匹配

边界: 在什么地方进行字符串匹配操作。使用边界限定符

 

A. \b用来匹配一个单词的开始或者结尾。 \b匹配这样一个位置,位于字母和非字母之间

\b只匹配位置,不匹配任何字符,也就是匹配到的串的长度不会包括\b.

 

\B 字母之间非字母与非字母 之间

 

B. 字符串边界

^和$

 

7. 使用子表达式

子表达式是一个更大的表达式的一部分,划分出来的目的是为了把子表达式作为一个独立的元素 来使用。

子表达式用() 括起来。用途:1. 重复(数量)匹配 2. 回溯引用

例如( ){2,}    (19|20)\d{2} 对OR操作符做出准确的定义

 

子表达式允许嵌套

嵌套时,关键在于分解开,按照先内后外的原则,而不是从第一个字符开始(从核心开始)。

逻辑思维能力是使用正则表达式的关键。

 

牢牢记住 : 把必须匹配的情况 考虑周全并写出一个匹配结果符合预期的正则表达式很容易,但把不需要匹配的情况 也考虑周全并确保它们都将被排除在匹配结果以外往往要困难的多。

 

8. 回溯引用(Backreference)

A. 作用: 让模式的后续 匹配部分了解前面 子表达式的匹配结果。或者说在模式内部引用 前面的子表达式。

 

B. 使用 \1 来引用子表达式,一般从1开始计数,\0一般是整个表达式,但各个语言的实现会有较大差异。

 

C. 回溯引用在替换操作中的作用

替换时需要两个正则表达式:一个用来给出搜索模式 ,另一个用来给出匹配文本的替换模式

回溯引用可跨模式 使用,一般放在$1 这样的变量中。

 

把文本分解成多个子表达式的做法在替换是可以做出更精确的控制。

分享到:
评论

相关推荐

    正则表达式笔记归纳

    ### 正则表达式基础知识与应用 #### 一、正则表达式的定义及用途 正则表达式(Regular Expression)是一种强大的文本处理工具,能够帮助我们实现字符串的搜索、替换等操作。它在多种编程语言中都有应用,尤其是在...

    [小小明]Python正则表达式全套笔记v0.3(1.8万字干货)

    Python正则表达式全套笔记v0.3 本文档是小小明个人笔记,涵盖了正则表达式的各个方面,包括各种模式、分组、断言、匹配、查找、替换和切割等。文档中提供了详细的正则匹配规则表,涵盖了基本字符规则、预定义字符集...

    java笔记之正则表达式

    在“java笔记之正则表达式”这篇笔记中,作者深入探讨了正则表达式的基本概念、操作方法以及在Java中的应用。 首先,正则表达式(Regular Expression)是一组符合特定规则的字符序列,主要用于字符串的查找、匹配、...

    正则表达式学习笔记

    ### 正则表达式学习笔记 #### 一、正则表达式概述 正则表达式是一种强有力的模式匹配工具,广泛应用于各种编程语言中,用于文本处理。正则表达式允许用户定义复杂的查找模式,这对于数据验证、搜索和替换操作特别...

    超经典正则表达式测试工具

    5. **正则表达式参考手册**:可能提供了一份全面的正则表达式语法和函数参考,用户可以随时查阅,提高开发效率。 在压缩包中,有三个HTML文件可能分别代表不同版本的测试工具,可能一个是加密版,一个是JavaScript...

    正则表达式系统教程.RAR

    正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索替换。它在编程、数据分析、文本挖掘等领域有着广泛的应用。本教程旨在帮助你深入理解和熟练掌握正则表达式,通过学习,你可以有效地查找、...

    javascript正则表达式学习笔记

    这篇学习笔记将深入探讨JavaScript正则表达式的概念、语法和实际应用。 一、正则表达式基础 1. 创建正则表达式: - 字面量表示法:`/pattern/flags` - 构造函数:`new RegExp('pattern', 'flags')` 2. 常见的...

    6正则表达式笔记[借鉴].pdf

    5. **正则表达式语法**: 正则表达式由普通字符、元字符和运算符组成。普通字符包括所有的字母、数字、标点符号等。元字符如`.`代表任意字符,`*`表示前一个字符重复零次或多次,`^`表示字符串的开始,`$`表示字符...

    java正则表达式学习笔记

    - 匹配所有中文字符的正则表达式:`[\u4E00-\u9FA5]` - 匹配全角字符的正则表达式:`[\uFE30-\uFFA0]` 示例代码: ```java String chineseText = "你好,世界!"; boolean isChinese = Pattern.matches("[\u4E00-\...

    python正则表达式详解笔记,python正则表达式教学.doc

    5. **易读性**:对于熟悉的人来说,正则表达式具有很好的可读性。 6. **学习曲线**:对于初学者来说,正则表达式的学习曲线较陡峭。 #### 二、Python中的正则表达式基础 在Python中使用正则表达式时,需要导入`re`...

    java 银行卡 验证 正则表达式使用

    在Java编程语言中,正则表达式是一种强大的文本处理工具,用于匹配、查找、替换等操作。在"java 银行卡 验证 正则表达式使用"这个主题中,我们将深入探讨如何利用正则表达式进行银行卡、手机号码和邮箱以及URL地址的...

    精通正则表达式(英文版+中文目录)

    《精通正则表达式》是一本深入探讨正则表达式的权威书籍,英文版结合中文目录,为学习者提供了便利。正则表达式是计算机科学中用于模式匹配和文本操作的强大工具,广泛应用于文本处理、数据提取、编程语言、网页爬虫...

    正则表达式.7z

    本压缩包"正则表达式.7z"包含了一份"笔记.txt",这份笔记详细介绍了正则表达式的概念和使用技巧,对于后续学习正则表达式或解决相关问题有着极高的参考价值。 首先,我们需要了解正则表达式的基石——元字符。元...

    笔记-正则表达式.md

    笔记-正则表达式.md

    正则表达式大全笔记总结

    ### 正则表达式大全笔记总结 #### 一、引言 正则表达式是一种用于匹配字符串的强大工具,在数据处理、文本分析等场景下极为常见。本文将对几个常见的正则表达式应用场景进行总结,包括中国电话号码验证、邮政编码...

    PHP 笔记001 - 字符串、正则表达式

    正则表达式则是一种强大的文本匹配工具,它允许我们在字符串中搜索、匹配和提取特定的文本模式。 ### 字符串处理 PHP提供了丰富的字符串处理函数,从基本的字符操作到复杂的文本转换,涵盖了日常开发中常见的需求...

    正则表达式笔记

    正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配、查找和替换操作。在Java中,正则表达式主要涉及到`java.lang.String`、`java.util.regex.Pattern`和`java.util.regex.Matcher`这三个类。下面我们...

    正则表达式学习笔记详解!

    ### 正则表达式学习笔记详解 正则表达式(Regular Expression)是一种强大的文本匹配工具,广泛应用于数据处理、文本搜索、格式验证等场景。以下是对给定文件中提到的各种正则表达式的详细解析,旨在帮助读者深入...

Global site tag (gtag.js) - Google Analytics