《学习正则表达式》(图灵程序设计丛书)-读书笔记

47 阅读1分钟

第二章 模式匹配

image.png \s匹配空白符,即空格,制表符\t,换行符\n,回车符\r

image.png

  • .? 0个或1个
  • .* 零个或多个字符
  • .+ 一个或多个字符

第三章 边界

  • ^ 行或者字符串的起始位置
  • $ 行或字符串的结尾位置
  • \b 单词边界

第四章 选择、分组和后向引用

image.png

image.png

image.png

第五章 字符组

[0-9]

[^aeiou]

[0-3[6-9]]

image.png

第六章 匹配Unicode和其他字符

第七章 量词

贪心、懒惰和占有

量词就是贪心。贪心的量词首次尝试匹配整个字符串,如果失败则回退一个字符后再次尝试。这个过程叫做回溯。它会每次回退一个字符,直到找到匹配的内容或者没有字符可尝试为止。此外,它还记录所有的行为,因此相较另两种方式它对资源的消耗最大。

懒惰的量词它从目标的起始位置开始尝试寻匹配,每次检查字符串的一个字符,寻找它要匹配的内容。最后,它会尝试匹配整个字符串。要使一个量词成为懒惰的,必须在普通量词后添加一个问号(?)。

占有量词会覆盖整个目标然后尝试寻找匹配内容,但它只尝试一次,不会回溯。占有量词就是在普通量词之后添加一个加号(+)。

image.png

7{1,} == 7+

7* == 7{0,}

7? == 7{0,1}

image.png

image.png

image.png

总结

^\(?(?:\d{3})\)?[-.]?(?:\d{3})[-.]?(?:\d{4})$

image.png