我正在尝试检索单词 foo 之后所有单词条。
内容下方:
fuu
bar
faa
foo bar fuu
酒吧 fuu 酒吧
栏
bar 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这里进行测试
答案 0 :(得分:1)
更新答案后,无需在后面查找正则表达式,可以使用如下正则表达式在定界符后查找名字:
> data
id a b
1 1 11 111
2 2 22 222
3 3 333 333
4 4 44 444
5 5 55 555
6 6 666 666
7 7 77 777
8 8 88 888
9 9 99 999
10 10 1099 1099
另一方面,如果要在定界符后使用所有名称,则可以使用这样的正则表达式技巧,然后从捕获组中获取内容:
my_delimiter:\s+name:\s*(.*)
捕获组存储以绿色突出显示的数据。
答案 1 :(得分:0)
两件事,具体取决于您所追求的是:
如果您将所有事件都排在一行上,那么您需要使用re.findall
:
exp = re.compile("foo(?:.*?((bar)+)*)") # See https://regex101.com/r/zzBFFb/1
match = exp.findall(mystring)
如果您如上所述都在多行中出现,那么您需要添加一些标志来告诉它不要以不同的方式对待换行符:
exp = re.compile("foo(?:.*?((bar)+)*)", re.DOTALL | re.MULTILINE)
match = exp.findall(mystring)