【发布时间】:2018-12-14 23:51:36
【问题描述】:
我只想在这里得到['bar']:
>>> re.findall(r"(?<!\bdef )([a-zA-Z0-9.]+?)\(", "def foo(): bar()")
['oo', 'bar']
这可能在单个正则表达式中吗?如果没有,我会先用这个:re.sub(r"\bdef [a-zA-Z0-9.]+", "", "def foo(): bar()")
【问题讨论】:
-
使用
\b(?<!\bdef )([a-zA-Z_][\w.]*)\(。单词边界将使单词内部的匹配变得不可能。 -
在后面添加
\b。 -
@Aran-Fey 最好将
\b放在lookbehind 之前,以便仅在单词边界位置之后执行。
标签: python regex python-3.x