繁体   English   中英

在字符串列表的每个项目中查找特定模式(正则表达式)(Python)

[英]Find a specific pattern (regular expression) in each item of list of strings (Python)

从这个列表中problems= ["32 + 698", "3801 - 2", "45 + 43", "123 + 49"]

我想得到这些数字"\d*\s"这意味着 32,3801,45,123

有没有办法查看列表的每个项目并使用列表理解在那里搜索?

我只有这个尝试print([x for x in problems if re.search(r'\d*\s',x)]) ,但如果"\d*\s"在那里,它会打印整个项目,所以我又得到["32 + 698", "3801 - 2", "45 + 43", "123 + 49"]

(我的目标是每个项目的长度更长,即 3,4,2,3)

您需要在字符串中提取空格之前的第一部分。 这可以使用组捕获来完成。 这是您可以使用的代码:

[re.search('(\d+)\s', x).group(1) for x in problems if re.search(r'(\d)*\s',x)]

这里(\d+)\s匹配空格字符之前的一个或多个数字,我们使用group(1)方法提取第一组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM