从String Python中提取数字

时间:2018-03-14 08:11:37

标签: python regex

我想在一个字符串中提取一些数字,经过多次尝试使用正则表达式后,我似乎找不到正确的模式。还有其他数字,但我只需要“M”后的3位数。谢谢。

实施例: line:"2018-01-23 - member data. member_id=[M001]."

结果:

001

3 个答案:

答案 0 :(得分:1)

您可以将re.findall与捕获组一起使用,如下所示:

matches = re.findall( r'.*\[M(.*?)\]', '2018-01-23 - member data. member_id=[M001].')
print(matches[0]) # 001

答案 1 :(得分:1)

您可以按如下方式使用re.findall

matches = re.findall( r'\[M(\d{3})\]', '2018-01-23 - member data. member_id=[M001].')
print(matches[0])

out:
001

<强>解释

\d will find any number.
{3} will find occurrence of the match.

答案 2 :(得分:0)

你说你已经尝试过这个:

m = re.search(r'member_id=[M(\d+)]', line)

但您需要转义[]字符,因为它们在此处具有特殊含义。试试这个:

m = re.search(r'member_id=\[M(\d+)\]', line)