从字符串中提取前3个数字

时间:2014-01-30 09:34:32

标签: python regex

如何提取字符串的前3个数字:

在:

"Box 123 (NO) 456"

出:

123

1 个答案:

答案 0 :(得分:3)

只需搜索\d{3}并抓住第一场比赛:

match = re.search(r'\d{3}', inputstring)
if match:
    print match.group(0)

演示:

>>> import re
>>> inputstring = "Box 123 (NO) 456"
>>> match = re.search(r'\d{3}', inputstring)
>>> if match:
...     print match.group(0)
... 
123

请注意,上面的匹配子字符串;如果您有一个四位数的数字,它将匹配该数字的前三位数。

你的帖子非常稀疏的细节;让我们假设上面的内容不够,但是你的数字是用空格分隔的,那么你可以使用\b锚来匹配完全 3位数:

match = re.search(r'\b\d{3}\b', inputstring)

匹配非字字符之间的3位数字(字符串的开头或结尾,空格,标点符号等。不是字母,数字或下划线):

>>> re.search(r'\b\d{3}\b', inputstring)
<_sre.SRE_Match object at 0x106c4f100>
>>> re.search(r'\b\d{3}\b', "Box 1234")
>>> re.search(r'\b\d{3}\b', "Box 123")
<_sre.SRE_Match object at 0x106c4f1d0>