Python常用正则方法和模式

python正则基本方法概述

正则表达式是通过一串特殊的字符序列来查找匹配被校验的字符串,满足匹配规则则返回需要的字符串内容,不满足则空。

常用模块和模块下对应的方法
re模块,对应方法如下截图:在这里插入图片描述

在CMD交互窗口下import re,然后help(re),可见上述方法。

  • macth只匹配字符串的开头,匹配失败返回None,匹配成功返回匹配对象,可通过匹配对象函数group(num)或group()来输出匹配具体结果。
  • search返回字符串中第一个满足匹配条件的匹配对象,可通过匹配对象函数group(num)或group()来输出匹配具体结果。
  • findall贪婪匹配所有字符串作为列表返回。
  • compile生成正则表达式对象供match、search等使用,匹配成功返回匹配对象,同样通过group处理。
  • sub替换字符串中的匹配项作为字符串返回。
  • finditer匹配结果作为迭代器返回。要取得匹配出来的具体字符串需要通过for循环改迭代器,变量.group()来取出。

正则表达式的可选标志控制匹配模式,通过|并行使用

修饰符 描述
re.I 使匹配对大小写不敏感
re.L 做本地化识别(locale-aware)匹配
re.M 多行匹配,影响 ^ 和 $
re.S 使 . 匹配包括换行在内的所有字符
re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.
re.X 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。

正则表达式模式

模式 描述
^ 匹配字符串的开头
$ 匹配字符串的末尾。
. 匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符。
[…] 用来表示一组字符,单独列出:[amk] 匹配 ‘a’,‘m’或’k’
[^…] 不在[]中的字符:[^abc] 匹配除了a,b,c之外的字符。
re* 匹配0个或多个的表达式。
re+ 匹配1个或多个的表达式。
re? 匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式
re{ n} 精确匹配 n 个前面表达式。例如, o{2} 不能匹配 “Bob” 中的 “o”,但是能匹配 “food” 中的两个 o。
re{ n,} 匹配 n 个前面表达式。例如, o{2,} 不能匹配"Bob"中的"o",但能匹配 “foooood"中的所有 o。“o{1,}” 等价于 “o+”。“o{0,}” 则等价于 “o*”。
re{ n, m} 匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式
a| b 匹配a或b
\w 匹配字母数字及下划线
\W 匹配非字母数字及下划线
\s 匹配任意空白字符,等价于 [ \t\n\r\f]。
\S 匹配任意非空字符
\d 匹配任意数字,等价于 [0-9].
\D 匹配任意非数字
\A 匹配字符串开始
\Z 匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串。
\z 匹配字符串结束
\G 匹配最后匹配完成的位置。
\b 匹配一个单词边界,也就是指单词和空格间的位置。例如, ‘er\b’ 可以匹配"never” 中的 ‘er’,但不能匹配 “verb” 中的 ‘er’。
\B 匹配非单词边界。‘er\B’ 能匹配 “verb” 中的 ‘er’,但不能匹配 “never” 中的 ‘er’。
\n, \t, 等. 匹配一个换行符。匹配一个制表符。等

常用方向

  • Jmeter工具中在Post Processors中后置处理器中有一个正则提取器,这里可以通过正则来将需要的值存储到指定变量名中。​在这里插入图片描述

  • Jmeter的查看结果树中可以使用正则表达式在这里插入图片描述

  • 爬虫过程中通过正则来匹配想要获取的内容。

  • 在字符串的处理过程中,寻求最优的方式,不一定正则处理就最直观最快。

  • 待续。

猜你喜欢

转载自blog.csdn.net/chang_jinling/article/details/114946078
今日推荐