python - 如何使用 Python 使用 Regex 编译括号中的数字列表
问题描述
我正在尝试使用 Regex 查找括号中的所有数字,例如,使用以下输入:
"PO = 19 AND TR = 12 AND CD NOT IN (23, 45, 98, 34, 18)"
我要这个:
[23, 45, 98, 34, 18]
我试过这个:
pattern = re.compile(r"\((\d+)\)")
final = list(pattern.findall("PO = 19 AND TR = 12 AND CD NOT IN (23, 45, 98, 34, 18)"))
它只返回空列表
解决方案
您可以使用积极的前瞻模式:
re.findall(r'\d+(?=[^(]*\))', s)
所以给定s = "PO = 19 AND TR = 12 AND CD NOT IN (23, 45, 98, 34, 18)"
,这返回:
['23', '45', '98', '34', '18']
或者,如果您希望列表项是整数,则可以将它们映射到int
:
list(map(int, re.findall(r'\d+(?=[^(]*\))', s)))
返回:
[23, 45, 98, 34, 18]
推荐阅读
- batch-file - 如何从批处理文件创建文本文件?
- mysql - MySQL查询以查找所有子元素
- c++ - 运行由 protoc 生成的文件时出现分段错误
- plugins - 在 Dynamics CRM 中的自定义按钮后面创建插件
- python - 根据条件选择 Pandas 数据框中的列
- mysql - 可以在查询中使用 IF 吗?
- c - 如何使用 ncurses 修复箭头键的延迟?
- python - 如何在 Python 中使用 OAuth 对 Wikimedia Commons 查询服务进行身份验证?
- java - 多个请求进入 Java gRPC Server 的同一个线程
- java - 如何将列表对象绑定到百里香形式?