python - python中解析数字的正则表达式

标签 python regex

有人可以帮我解决以下情况吗?

NFL 赛季即将来临,我正在编写一个 Python 脚本,用于从网站上抓取利差进行分析。

场景一:点差的形式为-3+3

场景二:点差的形式为-3.5+3.5

import re 

s1 = '-3+3'
s2 = '-3.5+3.5'

search1 = re.search(r'(.\d)(.*)',s1)
search2 = re.search(r'(.\d)(.*)',s2)

print search1.group(1),','search1.group(2)
print search2.group(1),',',search2.group(2)

>-3 , +3
>-3 , .5+3.5

正如您所看到的,第二个场景的输出会截掉小数点后的所有内容并将其放在下一个数字的前面。谁能帮我找到适用于这两种情况的解决方案?

谢谢!

最佳答案

您可以使用 re.findall()'(.\d(?:\.\d+)?)' 作为您的正则表达式,它使用可选的匹配小数部分的组:

>>> re.findall(r'(.\d+(?:\.\d+)?)', s1)
['-3', '+3']
>>> re.findall(r'(.\d+(?:\.\d+)?)', s2)
['-3.5', '+3.5']

关于python - python中解析数字的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39148905/

相关文章:

python - 如何限制opencv在Python中使用的线程数?

Python 语法错误(无效语法)

python - Jupyter 卡在 pip install 中

.net - 正则表达式替换单词中间的连字符

javascript - 使用正则表达式从url中提取参数值

java - 奇怪的 Java 替换优先

python - 烤宽面条一维卷积误差

sql - 如何使用 Regex 查询 ISSN 格式模式?

javascript - js正则表达式转义引号

python - 对于python,如何将变量传递给JSON?