在 Python 中,re 模块可以用来使用正则表达式匹配字符串。
主要利用方法 re.search(r'pattern', 'text') 和 re.findall(r'pattern', 'text')。re.match(r'pattern', 'text') 方法使用较少,因为它只能匹配 text 开头的字符串。
模式串使用原始字符串可以避免不必要的麻烦。
match 对象:re.search() 和 re.match() 返回的对象。
| 对象的方法 | 含义 |
|---|---|
match.string |
主串 |
match.re |
匹配时使用的 pattern(正则表达式) |
match.pos |
text 的开始位置 |
match.endpos |
text 的结束位置 |
match.group() |
获得匹配后的字符串 |
match.start() |
匹配的字符串在主串中的开始位置 |
match.end() |
匹配的字符串在主串中的结束位置 |
match.span() |
返回 (match.start(), match.end()) |
贪婪匹配和非贪婪匹配:
- 贪婪匹配:在满足条件的情况下,尽可能长的去匹配。如:
text = "Pythonnnnn",pattern = r"Python+"。那么匹配到的结果是Pythonnnnn,而不是Python - 非贪婪匹配:匹配最小的结果
在上例中,使用 ? 可达到非贪婪匹配的效果:pattern = r"Python+?"。
:::danger
注:本例貌似不大正确,日后再完善,但大概意思还是对的。
:::
正则表达式写法参考这篇文章:
正则表达式学习笔记
