使用Python中的Regex从字符串中提取数字(包括破折号)



您好,感谢您的帮助。

字符串示例:

" Hello 43543" --->" 43543"
" John Doe 434-234" --->" 434-234"

我需要一条正则提取右侧的示例。

我会按照方式进行:

import re
pattern = r'd[0-9-]*'
number1 = re.findall(pattern,'Hello 43543')
number2 = re.findall(pattern,'John Doe 434-234')
print(number1[0]) #43543
print(number2[0]) #434-234

我的解决方案假设您正在寻找以数字开头的字符串,并且所有其他字符均为数字或-,这意味着它也将抓取例如4---9-2-4---等案例。

我想注意写作模式,您应该回答问题:它应该匹配的内容?我的模式适用于您给出的示例,但请记住,这并不意味着它将为所需的所有数据提供您可能需要使用它处理的所有数据。

如果您的所有字符串都是这样,则可以在没有re的情况下实现相同的目标:

s = "John Doe 434-234"
n = s.split()[-1] 
print(n)
>>> "434-234"

它将您的字符串在空间上拆分并给您最后一个字段。

最新更新