【发布时间】:2019-11-27 17:41:21
【问题描述】:
我正在尝试检索单词 foo 之后出现的所有 word 栏。
以下内容:
呵呵
条形
faa
foobar fuu
barfuubar
条形
酒吧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:
之后的人名【问题讨论】:
-
您是替换那些匹配项还是只是提取?
-
按foo分割一次,按bar简单搜索。
-
好的,所以,您不能在 Python
re中使用像(?<=foo.*?)这样的无限宽度后视,因此只需在第一个foo之后获取一个子字符串,然后从这部分中提取。以一种非常快速和肮脏的方式:re.findall(r'bar', text.split('foo', 2)[1]) -
另外,您可以安装 PyPi 正则表达式模块并使用
regex.findall(r'(?s)(?<=foo.*?)bar', text),参见rextester.com/ZSII13536 -
参见regex101.com/r/HrCLva/3,与 PyPi 正则表达式一起使用
标签: python regex regex-lookarounds