python - 正则表达式 Python 提取数

标签 python regex

如何从文本字符串中只提取数字。 多次出现 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/

相关文章:

Python - MySQLdb - 更新行导致 TypeError : not enough arguments for format string

python - 如何使用 python 通过 POST 请求将成员/用户添加到 Rancher 项目?

Python 2.6.1 (OS X 10.6.8) re.sub() 下划线组中的行为?

java - 在 Java 的正则表达式中捕获标题大小写组

python - Python 中的 Matlab 内联函数

python - 如何为不可变类型实现 "__iadd__()"?

python - 根据另一个模型对象的列表从模型获取数据

regex - 如何匹配彼此相邻的括号?

javascript - 使用 Javascript 正则表达式替换 "name"属性

提取赫斯特模式的正则表达式模式