如何从文本字符串中只提取数字。 多次出现 C{d}{d}{d}... 必须将其删除。仅保留数字。
text=['C1412DRE, New York 2695','Direction 12','Main Street 6254 C13D']
re.sub('[a-zA-Z]', '', str(text))
Desired output:
[2695,12,6254]
最佳答案
与其尝试去除所有字母字符,不如搜索所有独立数字。这是一个选项,使用 re.findall
和正则表达式模式 \b\d+\b
:
text = ['C1412DRE, New York 2695','Direction 12','Main Street 6254 C13D']
inp = ' '.join(text)
matches = re.findall(r'\b\d+\b', inp)
print(matches)
['2695', '12', '6254']
我的逻辑中一个可能的缺陷是我将您的字符串列表连接成一个字符串,并用空格分隔。这是必需的,因为 re.findall
需要单个字符串进行搜索。但是,由于正则表达式模式仅查找已经由单词边界分隔的数字,因此按空格连接不应引入任何副作用(我认为)。
关于python - 正则表达式 Python 提取数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57167667/