re/regex:正则表达式(持续更新ing...)

325 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 5 天,点击查看活动详情

诸神缄默不语-个人CSDN博文目录

re包官方文档-英文版:re — Regular expression operations — Python 3.10.7 documentation 中文版:re --- 正则表达式操作 — Python 3.10.7 文档

regex pypi官网:regex · PyPI

最近更新时间:2022.9.28 最早更新时间:2022.9.20

@[toc]

1. 其他注意事项

2. 正则表达式语法

  1. .:(点) 在默认模式,匹配除了换行的任意字符。如果指定了标签 DOTALL ,它将匹配包括换行符的任意字符。
  2. $:匹配字符串尾或者在字符串尾的换行符的前一个字符,在 MULTILINE 模式下也会匹配换行符之前的文本。 foo 匹配 'foo''foobar',但正则表达式 foo$ 只匹配 'foo'。 在 'foo1\nfoo2\n' 中搜索 foo.$,通常匹配 'foo2',但在 MULTILINE 模式下可以匹配到 'foo1';在 'foo\n' 中搜索 $ 会找到两个(空的)匹配:一个在换行符之前,一个在字符串的末尾。
  3. *:对它前面的正则式匹配0到任意次重复, 尽量多的匹配字符串。 ab* 会匹配 aab,或者 a 后面跟随任意个 b
  4. ?:对它前面的正则式匹配0到1次重复。 ab? 会匹配 a 或者 ab
  5. []:匹配括号内的任意字符
  6. |A|B A或B
  7. (组合):匹配括号内的任意正则表达式
  8. \s
    1. 对于 Unicode (str) 样式: 匹配任何Unicode空白字符(包括 [ \t\n\r\f\v] ,还有很多其他字符,比如不同语言排版规则约定的不换行空格)。如果 ASCII 被设置,就只匹配 [ \t\n\r\f\v] 。
    2. 对于8位(bytes)样式: 匹配ASCII中的空白字符,就是 [ \t\n\r\f\v] 。
  9. \S:匹配任何非空白字符。就是 \s 取非。如果设置了 ASCII 标志,就相当于 [^ \t\n\r\f\v] 。

3. 模块内容

3.1 标志

3.2 函数

  1. re.compile(pattern):将正则表达式模式compile为正则表达式对象
  2. re.findall(pattern,string)
  3. re.finditer()
  4. re.sub()