text = ['C1412DRE, New York 2695','Direction 12','Main Street 6254 C13D']
str = ' '.join(text)
[int(s) for s in str.split() if s.isdigit()]
[2695, 12, 6254]
使用regexp:
import re
re.findall(r'\b\d+\b', str)
['2695', '12', '6254']
把它们转换成数字
[int(s) for s in re.findall(r'\b\d+\b', str)]
[2695, 12, 6254]
不带regexp
使用regexp:
把它们转换成数字
https://docs.python.org/3/library/re.html
您可以使用codegen尝试regexp:https://regex101.com/r/4kUHhq/1
我宁愿搜索所有独立的数字,而不是试图去掉所有的字母字符。这里有一个选项,将
re.findall
与regex模式\b\d+\b
一起使用:我的逻辑中可能存在的一个缺陷是,我将您的字符串列表合并为一个字符串,用空格分隔。这是必需的,因为
re.findall
需要单个字符串进行搜索。但是,由于regex模式只寻找已经被单词边界分隔的数字,所以按空格连接不应该引入任何副作用(我认为)。你知道吗相关问题 更多 >
编程相关推荐