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

问题描述 投票:-2回答:2

您好,感谢您的帮助。

字符串示例:

“你好43543”--->“43543” “John Doe 434-234”--->“434-234”

我需要一个正则表达式来提取右边的例子。

python regex
2个回答
0
投票

我会按照以下方式做到:

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---等等,但是这可能不是您的用例中的问题。

我想要注意,在编写模式之前,你应该回答一个问题:它应该完全匹配的是什么?我的模式适用于您给出的示例,但请记住,这并不意味着它会为您希望使用它处理的所有数据提供所需的输出。


0
投票

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

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

print(n)

>>> "434-234"

它会在空格上分割你的字符串并给你最后一个字段。

© www.soinside.com 2019 - 2024. All rights reserved.