Python 正则表达式
正则表达式(Regular Expression, 或简称 regex)是一个强大的工具,它使用一种专门的语法来搜索、匹配和操作字符串中的特定模式。Python 通过内置的 re 模块来支持正则表达式。
什么是正则表达式?
想象一下,你想在一个长文本中查找所有电话号码或电子邮件地址。这些模式很难用简单的字符串方法(如 find() 或 startswith())来描述。正则表达式允许你定义一个“模式”,然后用这个模式去匹配你想要的任何复杂字符串。
re 模块的核心函数
re.search(pattern, string)
扫描整个字符串,查找模式第一次出现的位置,如果找到则返回一个匹配对象(Match Object),否则返回 None。
r"..."是什么?r前缀表示这是一个“原始字符串 (raw string)”。在正则表达式中,反斜杠\有特殊含义(如\d表示数字)。使用原始字符串可以防止 Python 解释器对反斜杠进行转义,从而简化正则表达式的书写。
re.findall(pattern, string)
查找字符串中所有与模式匹配的非重叠子串,并以列表形式返回。
re.sub(pattern, repl, string)
查找与模式匹配的子串,并用 repl 替换它们。返回替换后的新字符串。
常用的元字符 (Metacharacters)
元字符是正则表达式中有特殊含义的字符。
分组 (Grouping)
使用圆括号 () 可以对模式进行分组。这有两个主要作用:
- 将多个字符作为一个整体来应用量词(如
*,+,?)。 - 捕获匹配的内容,以便后续引用。
正则表达式是一个非常广阔和强大的领域,掌握它需要不断的练习。建议使用在线工具(如 regex101.com)来测试和学习模式。