正则表达式必知必会(修订版) 笔记

正则表达式必知必会(修订版)

一、匹配单个字符

  1. . (英文句号)可以匹配任何单个字符(在绝大多数实现里,除换行符)
  2. \ 用来对字符进行转义(在正则表达式里,有特殊含义的字符总是以\字符开头)

二、匹配一组字符

  1. 元字符[和]用来定义一个字符集合,其含义是必须匹配该集合里的字符之一
  2. 元字符 - (连字符)可以表示字符区间
  3. 字符集合里可以用元字符 ^ 求反

三、使用元字符

  1. 匹配数字
元字符说明
\d[0-9]
\D[^0-9]

2. 匹配字母和数字

元字符说明
\w[a-zA-Z0-9_]
\W[^a-zA-Z0-9_]

3. 匹配空白字符

元字符说明
\s[\f\n\r\t\v]
\S[^\f\n\r\t\v]

4. 匹配16进制(\x)或八进制(\0)数值
5. POSIX字符类(JavaScript不支持

四、重复次数匹配

  1. 简易匹配
元字符说明
+至少一次
*零次或多次
?零次或一次

2. 精确匹配

元字符说明
{3}3次
{3,5}最少3次,最多5次
{3, }至少3次

3. 防止过度匹配

贪婪型(greedy)元字符懒惰型元字符(nongreedy)
**?
++?
{n, }{n, }?

五、位置匹配

  1. \b 指定一个单词边界(匹配位置,不匹配任何字符)

  2. \B 不匹配单词边界

  3. ^ 指定字符串的开头

  4. $ 匹配字符串的结束

  5. (?m) 与 ^ 和 $ 配合使用,还将匹配在换行符处开头和结尾的字符串(用在最前面)

    (?m)^\s*//.*$

    查找JavaScript代码里的行注释

六、使用子表达式

  1. 子表达式必须用 ( 和 ) 定义

  2. 常见用途:

    1. 对重复次数元字符的作用对象做出精确的设定和控制
    2. 对 | 操作符的 OR 条件做出准确定义
    3. 子表达式允许嵌套
  3. 示例:匹配IP地址

    1. 简易型: (\d{1,3}\.){3}\d{1,3}

    2. 完善型(注意 | 的使用):

      (((25[0-5])|(2[0-4]\d)|(1\d{2})|(\d{1,2}))\.){3}((25[0-5])|(2[0-4]\d)|(1\d{2})|(\d{1,2}))

七、回溯引用:前后一致匹配

  1. 可以将回溯引用想象成变量,\1 代表模式里的第一个子表达式

    • 不同实现的语法可能有差异
    • 某些实现可能支持命名捕获功能(如.NET),鼓励使用
  2. 回溯引用在替换操作中的使用

    • 注意不同实现中的差异(Java使用 $ )

      // 电话号码重新排版

      正则表达式: (\d{3})(-)(\d{3})(-)(\d{4})

      替换式: ($1) $3-$5

    • 大小写转换

    元字符说明
    \E结束\L或\U转换
    \l把下一个字符转换为小写
    \L把\L到\E之间的字符转换为小写
    \u把下一个字符转换为大写
    \U把\U到\E之间的字符转换为大写

八、前后查找

  1. 向前查找((?=...)

    // 提取URL地址的协议名(不消费(consume) : )

    .+(?=:)

  2. 向后查找((?<=...))(JavaScript可能不支持)

    // 提取价格中的数值部分

    (?<=\$)[0-9.]+

  3. 对前后查找取非

操作符说明
(?=)正向前查找
(?!)负向前查找
(?<=)正向后查找
(?<!)负向后查找

九、嵌入条件

  1. 回溯引用条件

    1. 满足时的语法: (?(backreference)true-regex)

      查找文本中的<img>标签,如果包含在<a>之间,则匹配出<a>

      (<[Aa]\s+[^>]+>\s+)?<[Ii][Mm][Gg]\s+[^>]+>(?(1)\s*</[Aa]>)

    2. 不满足时的语法: (?(backreference)true-regex|false-regex)

      匹配北美电话格式

      (\()?\d{3}(?(1)\)|-)\d{3}-\d{4}

  2. 前后查找条件

    • 语法: 将回溯引用时的编号替换为前后查找表达式

      匹配美国的ZIP编码

      \d{5}(?(?=-)-\d{4})

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《正则表达式必知必会修订版》是一本介绍正则表达式的经典教程,其通过简单易懂的语言和大量实例来讲解正则表达式的基本语法、常用元字符、匹配原理等知识点,适合初学者学习。而此次修订版则在原基础上进行了一定的更新和完善,包括增加了一些新的实例和案例,更加详细地解释了一些重要的概念和技巧,使得读者可以更加准确地掌握正则表达式的使用方法,并且更好地应用到实际的编程工作中。 总的来说,《正则表达式必知必会修订版》是一本非常好的学习资料,无论是从基础入门到深入掌握,都能够满足读者的需求。对于初学者来说,可以通过该书快速掌握正则表达式的基本语法,然后结合实例进行练习,掌握正则表达式的初步应用。对于进阶学习者,可以从更深入的角度去学习正则表达式的应用,探索更加高级的技巧和应用场景,提高编程能力。 总之,《正则表达式必知必会修订版》是一本非常优秀的正则表达式入门教程,它具有简单易懂,知识点全面,实用性强的特点,是广大编程爱好者学习正则表达式的一本不可多得的好书。 ### 回答2: 正则表达式必知必会修订版pdf 是一本非常好的正则表达式教材,适合初学者和进阶者。首先,本书的语言简洁明了,通俗易懂,作者使用了大量实例和练习,帮助读者理解和掌握正则表达式的基础知识和进阶技巧。其次,本书的内容全面、系统,覆盖了正则表达式的所有方面,包括元字符、字符集、量词、分组、反向引用、零宽度断言等等。读者可以根据自己的需求和程度选择阅读,打好基础,完善技能。最后,本书的价值在于它能够让读者真正理解和应用正则表达式,提升工作效率。正则表达式是一种强大的文本匹配工具,它能够对文本进行高效率、精准匹配,解决企业中的一些文本处理难题,如批量修改、提取数据等。如果您是一名程序员或数据分析师,正则表达式必知必会修订版pdf一定是您的必备书籍之一,它能帮助您提升工作效率,打造更优秀的代码和应用。 ### 回答3: 正则表达式必知必会修订版pdf是一本对于正则表达式入门的学习者来讲十分有用的书籍,它详细地介绍了正则表达式的基础知识、语法和常用的应用方式。 在该书中,作者通过生动的例子和详细的讲解,引导读者逐步学习掌握正则表达式的语法和编写方式,让读者具备在处理文本数据时运用正则表达式的能力,并且能够有效地解决实际应用中遇到的问题。 此外,该书也涵盖了常用的正则表达式引擎和语言,比如Perl、Java、JavaScript等,并对常见的正则表达式应用进行了讲解,比如在表单验证、数据清洗和日志分析等领域中的应用。 总之,正则表达式必知必会修订版pdf对于初学者来说是一本非常实用的工具书,它不仅可以帮助人们学习和掌握正则表达式的基础知识,也可以帮助人们在实际应用中更加有效地运用正则表达式来提高工作效率和解决实际问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值