首页 > 解决方案 > 从文本python 3中提取特定模式

问题描述

我有一个看起来像这样的字符串,avg(foo)我只想从中提取foo。为此,我正在使用

import re
re.sub(")( avg","","avg(foo)")

但这不起作用。我哪里错了?

标签: pythonregexpython-3.x

解决方案


首先我要离开你可能想为你的模式使用 r-strings,此外你需要稍微改变你的模式r"avg\((.*)\)"就足够了。

import re

re.findall(r"avg\((.*)\)", "avg(foo)")
# Will return ['foo']

那么这里发生了什么?
我们使用re.findall来查找与模式匹配的所有匹配项。

该模式可以分解为:

  1. avg\(开头的东西avg(
  2. (.*)任何字符串的子组(可以修改以匹配更严格的模式)
  3. 最后\)将匹配单个“)”。

推荐阅读