如何只返回正则表达式的特定部分?

时间:2015-06-18 10:26:44

标签: python regex

import re

url = 'http://xxxxx.com/detail/028QCQZ?things_here'
re.search("detail/([A-Z0-9]+)\?", url).group()

返回:

'detail/028QCQZ?'

我认为在正则表达式中使用括号来指定要返回的字符串的哪一部分。

我只想获得代码: 028QCQZ

1 个答案:

答案 0 :(得分:3)

您需要使用第一个捕获的组:

re.search("detail/([A-Z0-9]+)\?", url).group(1)
//=> 028QCQZ

如果你使用 lookarounds ,那么你可以像这样使用group()

re.search(r"(?<=detail/)[A-Z0-9]+(?=\?)", url).group()
//=> 028QCQZ