【问题标题】:Python parsing numbers out of stringsPython 从字符串中解析出数字
【发布时间】:2023-01-31 00:02:00
【问题描述】:

我有各种包含数字的字符串:

例子:

>=5.0% or <=-6.25% 
>=6.25% or <=-7.813% 
<2.5% and >-3.125
>=2.5% or <=-3.125%
>=5.0% or <=-6.25% 
<5.0% or >-6.25%
<3.125 and >-3.906%

我想弄清楚是否有一种方法可以编写一段代码,无论字符数如何,都可以给我两个数字。或者,如果我将不得不编写代码来以不同的方式解析每一个。这些只是一些例子,我不确切知道我所有可能的输入是什么。而且我似乎没有可以分区的固定字符。我正在寻找任何建议或反馈。

【问题讨论】:

标签: python string parsing


【解决方案1】:

从字符串中提取数字的一种可能方法是使用正则表达式。字符串中数字的模式可以定义如下:

pattern = r'[<>=]+s*-?d+.d+%?'

然后,您可以使用 Python 中的 re 模块来查找字符串中的所有匹配项:

import re

strings = [
">=5.0% or <=-6.25%",
">=6.25% or <=-7.813%",
"<2.5% and >-3.125",
">=2.5% or <=-3.125%",
">=5.0% or <=-6.25%",
"<5.0% or >-6.25%",
"<3.125 and >-3.906%",
]

for string in strings:
numbers = re.findall(pattern, string)
print(numbers)

这将返回与每个输入字符串中的模式匹配的字符串列表,然后您可以根据需要将其解析为数字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 2021-10-29
    • 2016-06-29
    • 1970-01-01
    相关资源
    最近更新 更多