首页 > 解决方案 > 如何在 python 中使用正则表达式从字符串中提取数字和点?

问题描述

我正在尝试从 python3 中的字符串中提取数字和点,但没有成功。实际上我尝试使用正则表达式搜索功能,但我只得到第一个数字而不是点和后面的数字。这是我的测试示例

string = "CDS             complement(129..1049)"

print(int(re.search(r'\d+', string).group()))

129

但实际上我想得到:

129..1049

我还尝试通过以下方式改进我的代码:

print(int(re.search(r'\d+\.\.\d+', line).group()))

但我收到此错误:

ValueError: invalid literal for int() with base 10: '129..1049'

你能帮助我吗?

提前致谢。

标签: pythonregex

解决方案


您的正则表达式工作正常。re.search(r'\d+\.\.\d+', line)返回'129..1049',因此当您尝试将该字符串传递给 时int(),它会失败。您必须首先手动split将字符串分成两个整数部分。


推荐阅读