正则表达式-类型错误:“ str”和“ int”的实例之间不支持“>”

时间:2019-06-19 20:22:13

标签: python regex

这是我拥有的数据

 'E10641',
 'Type 1 diabetes mellitus with ',
 'hypoglycemia with coma',
 'E1110',
 'Type 2 diabetes mellitus with ketoacidosis ',
 'without coma',
 'E1100',
 'Type 2 diabetes mellitus with ',
 'hyperosmolarity withoutnonketotic ',
 'hyperglycemic-hyperosmolar coma ',
 '(NKHHC)',
 'E1111',
 'Type 2 diabetes mellitus with ketoacidosis ',
 'with coma',
 'Diabetes short-term complications diagnosis codes: (ACDIASD)',
 'June 2018',
 '3 of 3',

我试图编写一个正则表达式代码以提取以“ E”开头并后跟数字(例如E10641)的代码。

This is my program:
import re
content = str(content)
for line in content:
    if len (line>0):
        x = re.search("E[0-9]+", content)
        print (x)

但是它具有以下错误:

TypeError: '>' not supported between instances of 'str' and 'int'

我通过按照问题答案中的建议编辑len (line)>0部分来解决此问题。这是代码的更新版本:

import re
ICD = []

#content = str(content)
for line in content:
    if len (line) >0 :
        x = re.search("E[0-9]+", content)
        ICD = ICD.append(x)
        print (x)

我需要提取所有代码并将它们放在列表中。但是现在我出现了以下错误:

'NoneType' object has no attribute 'append'

能帮我吗?

1 个答案:

答案 0 :(得分:0)

不确定您要做什么,但是问题出在这一行 if len (line>0):您正在检查字符串是否大于int,并询问该答案的长度是多少。

我猜您想输入if len(line)>0:,而无需检查它是否大于0,您可以使用if line: 空字符串为False而非空字符串为True

>>> a="sss"
>>> b=""
>>> bool(a)
True
>>> bool(b)
False