我是 Python 新手,我不知道 Python 中的正则表达式。这是问题。我在标准输出中有一个像“总成本:37”这样的句子,我想提取成本信息是 37。当我在特定行中匹配“总成本:”这个词时,我应该如何获得该行的其余部分我感兴趣的信息?
问问题
71 次
2 回答
3
使用regex
:
Total Cost:\s?
解释:
“总成本”:匹配字面量Total Cost:
\s?
:1 to 0 times Whitespace [\t \r\n\f]
捕获组([-+]?\d+)
:
[-+]?
:1 to 0 times matches one of the following chars: -+
\d+
:infinite to 1 times Digit [0-9]
In [121]: strs="some text Total Cost: 37 some more more Total Cost: -100"
In [122]: re.findall(r"Total Cost:\s?([-+]?\d+)",strs)
Out[122]: ['37', '-100']
于 2013-01-19T18:37:16.747 回答
0
虽然您说这个问题与“正则表达式”有关,但我专注于您所说的关于输出的内容。您的标准输出为:
Total Cost: 37
假设这个输出存储在一个名为output_string
. 我使用 Python 解释器:
In [11]: output_string = "Total Cost: 37"
In [13]: (total_text_string, total_numeric_string) =
output_string.split(':')
In [14]: total_text_string
Out[14]: 'Total Cost'
In [15]: total_numeric_string
Out[15]: ' 37'
In [16]: float(total_numeric_string)
Out[16]: 37.0
我们取字符串,使用split
方法,用“:”作为分隔符。我们最终得到两个字符串,一个用于文本部分,一个包含数字部分。由于您可能希望成本包含小数,因此您可以通过“float”将其“转换”为浮点数。然后,您可以决定要如何处理这些值。
于 2013-01-19T20:06:26.620 回答