首页 > 解决方案 > 如何使用正则表达式在单词“foo”之后获取所有单词“bar”

问题描述

我正在尝试检索单词foo之后出现的所有单词bar 。

内容下方:

酒吧

faa

foo bar fuu

酒吧fuu酒吧

酒吧

酒吧

我想检索所有粗体条并忽略第一个斜体格式的条。

我尝试使用以下正则表达式:

(?<=foo)bar

但这仅捕获第一次出现。

更新

感谢你们的支持。下面的数据更接近现实:

Some data

name: Person 1

Some data

my_delimiter:

 name: Person 2

 Some data

name: Person 3

Some data

 name: Person 4

 Some data

Some data

我想在my_delimiter 之后获取人员的姓名:

我在这里测试https://regex101.com/r/HrCLva/2

标签: pythonregexregex-lookarounds

解决方案


更新答案后,您不需要正则表达式后视,您可以使用这样的正则表达式来查找定界符后的名字:

my_delimiter:\s+name:\s*(.*)

工作演示

另一方面,如果你想要在你的分隔符之后的所有名称,那么你可以使用这样的正则表达式技巧,然后从捕获组中获取内容:

[\s\S]*my_delimiter|name:\s*(.*)$

工作演示 2

捕获组存储以绿色突出显示的数据。

在此处输入图像描述


推荐阅读