-1

我正在尝试从所有文本中删除一个字符串并将其转换为一个整数,以便我可以更轻松地使用 if 语句...

例子:

count = "19 Count"
count = count.replace(" Count", "")
print repr(count)
print int(count)

示例输出:

'19'
19

但是在我的实际代码中,我的输出是:

实际输出:

u'19'
Traceback (most recent call last):
  File "C:\test.py", line 153, in <module>
    print int(count)
ValueError: invalid literal for int() with base 10: ''
4

3 回答 3

3

错误的原因ValueError: invalid literal for int() with base 10: ''是您在int(). 喜欢int('')主要问题在于去除非数字字符的代码。

正则表达式可用于获取第一个数字。

In [3]: import re

In [4]: a = re.search('\d+', ' 18 count 9 count')

In [5]: int(a.group())
Out[5]: 18
于 2013-10-25T06:08:48.820 回答
2

检查每个单词的数字并使用过滤器输出是否为真。

>>> count = "19 Count"
>>> filter(lambda x:x.isdigit(), count)
'19'
于 2013-10-25T05:51:04.003 回答
1

试试这个,以满足您的要求。只会匹配第一个“数字集”:

import re
regex = re.compile("(\d+)")
r = regex.search("19 Count 1 Count")
print(int(r.group(1)))

输出:

19

您可以在这里试用代码:http: //ideone.com/OwbMYm

于 2013-10-25T06:16:01.993 回答