我有一个日志文件,我试图删除除数字(0-9)之外的所有不需要的文本。我能够使用string.replace('','')函数删除所有内容并获得所需的内容,但是,在几个地方,我仍然有一个空格,后面跟着一些文本朝向元素的末尾字符串。
例如。我能够从
获得12345
ansd: 12345,43556
但是,我仍然有一些形式为
的元素 12345 hdjhdjf dfdfd "dfd".
任何人都可以帮助我了解如何使用替换这个特定的问题吗?
答案 0 :(得分:2)
>>> import re
>>> re.compile('[^\d]*(\d+)[^\d]*').findall('12345 hdjhdjf dfdfd "dfd".')
['12345']
>>> re.compile('[^\d]*(\d+)[^\d]*').findall('ansd: 12345,43556')
['12345']
编辑 - 这个怎么样?
>>> import re
>>> re.compile('([^\d]*([0-9]+)[^\d]*)+').findall('12345 hdjhdjf dfdfd "dfd" 12333.')
[('12333', '12333')]
>>>
或者使用空格分隔所有非数字
>>> import re
>>> re.sub('[^\d]', ' ', '12345 hdjhdjf dfdfd "dfd" 12333.')
'12345 12333 '
或者用空格分隔所有数字
>>> import re
>>> re.sub('[0-9]', ' ', '12345 hdjhdjf dfdfd "dfd" 12333.')
' hdjhdjf dfdfd "dfd" .'
>>>