python - 匹配字符串之间的正则表达式
问题描述
嘿大家我有一个问题。我是正则表达式的新手,我发现它对匹配有点困惑。假设我想在数字模式之间取元素。
['1.Ab2 C34 2.kj4 nsb', '1.Dog Cat4 2.Bird6 Trex5']
是否可以只取数字 1. 和 2. 之间的任何元素?
output = [[Ab2 C34], [Dog Cat4]]
解决方案
使用re.findall
:
inp = ['1.Ab2 C34 2.kj4 nsb', '1.Dog Cat4 2.Bird6 Trex5']
matches = [re.findall(r'\b1\.\s*(.*?)\s*2\.', x)[0] for x in inp]
print(matches) # ['Ab2 C34', 'Dog Cat4']
推荐阅读
- android - Gradle - Android - buildConfigField 基于一对 (productFlavors, buildTypes)
- postgresql - 包含/排除项目的父/子表
- java - spring boot调度在方法级别启用/禁用任务
- matlab - 如何在 matlab 中绘制 PD 补偿器的输出?
- sql - WHERE 子句中的动态日期取决于当前日期
- python - 将 ProcessPoolExecutor 分配给定义的 cpus 并使用队列进行通信
- c - 使用递归反转数组
- bash - bash:用于识别导致错误的特定别名的脚本
- spring - Spring获取接收到的正文的MediaType
- ios - Swift:暂停沿路径移动的动画?