-3
regex=re.compile(r"pattern_A(\d+)|pattern_B:(\d+)")
result=re.search(regex,string);

我有字符串“pattern_A9123213”和“pattern_B490329402”,以及“没有匹配的字符串”
,结果将是 [('9123213','')],[('','490329402')] 或 [('',' ')] 我怎样才能只得到一个元素,如 ['9123213']、['490329402'] 和 ['']。谢谢!

4

2 回答 2

1

最简单的方法是r"(pattern_A|pattern_B:)(\d+)"用作您的正则表达式,然后获取第二个匹配组 ( re.search(regex,string).group(2))。这是有效的,因为您尝试抓取的组\d+在两侧是相同的模式 ( )。通常,您必须使用多个正则表达式来处理这种情况。

于 2012-09-28T20:30:41.507 回答
0

re.compile 不返回列表。它返回一个已编译的正则表达式,其方法可用于对字符串进行操作。

于 2012-09-28T20:18:24.000 回答