我想在一个字符串中提取一些数字,经过多次尝试使用正则表达式后,我似乎找不到正确的模式。还有其他数字,但我只需要“M”后的3位数。谢谢。
实施例:
line:"2018-01-23 - member data. member_id=[M001]."
结果:
001
答案 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)