在 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
注:本例貌似不大正确,日后再完善,但大概意思还是对的。
:::
正则表达式写法参考这篇文章:
正则表达式学习笔记
