【发布时间】:2016-01-06 02:16:05
【问题描述】:
我正在学习正则表达式。我需要匹配括号组中的内容,然后是我定义的一些模式。当我用正则表达式(在 Python 中)尝试这个时,它只返回它匹配的括号中的部分,而不是它后面的模式。一个例子应该澄清:
import re
s = "texttoignore_ABCABC12345_moretexttoignore"
re.findall("(ABC)+\d+", s)
当我谈到括号组时,在上面的示例中,这是“(ABC)+”部分。我打算让它在括号中查找一个或多个重复的模式(在本例中为“ABC”),然后是后面的模式。
问题是这样的:它不返回之后的模式。 (在这个例子中,它会返回 'ABC',但我想要 'ABCABC12345' 或 'ABC12345' 或者更好的是 '12345')
如何在返回值中包含括号后面的部分?这是关于正则表达式的问题还是特定于这个 Python 方法?
谢谢!
约翰
【问题讨论】:
-
你也可以使用
re.search():re.search(r"(ABC)+\d+", s).group()