从Python中的字符串中提取特定数字

时间:2018-03-20 23:46:40

标签: python

我有一个字符串,其中包含我想要提取到一个数字中的特定数字。

string = Result: ResultSet({'(u'examplemeasure', None)': [{u'value': 15, u'time': u'2018-03-20T22:50:33.803894733Z'}]})

我希望结果是15号。

15 (<-- just like this)

我的代码如下。

import re
m = re.search('(\d+)', 'Result: ResultSet({'(u'examplemeasure', None)': [{u'value': 15, u'time': u'2018-03-20T22:50:33.803894733Z'}]})', re.IGNORECASE)
print (m.group(1))

但是,大量的撇号会产生语法错误。

  File "filename.py", line 3
print (m.group(1))
    ^
SyntaxError: invalid syntax

有没有办法忽视撇号的数量并自行获得数字15?

谢谢, whyiamafool​​

2 个答案:

答案 0 :(得分:0)

ResultSet中的单引号需要转义。或者使用双引号包装ResultSet

答案 1 :(得分:0)

我想出了如何在OP的几分钟内从一个包含多个数字的字符串中提取特定数字。

您可以从字符串中删除初始和最后一个撇号,如图所示。

m = re.search('(\d+)', Result: ResultSet({'(u'examplemeasure', None)': [{u'value': 15, u'time': u'2018-03-20T22:50:33.803894733Z'}]}), re.IGNORECASE)

在字符串周围用引号(&#34;&#34;)替换那些撇号将解决问题。

m = re.search('(\d+)', "Result: ResultSet({'(u'examplemeasure', None)': [{u'value': 15, u'time': u'2018-03-20T22:50:33.803894733Z'}]})", re.IGNORECASE)

该计划的印刷结果是......

15

(下面的完整代码)

import re
m = re.search('(\d+)', "Result: ResultSet({'(u'examplemeasure', None)': [{u'value': 15, u'time': u'2018-03-20T22:50:33.803894733Z'}]})", re.IGNORECASE)
print (m.group(1))

15