我将使用正则表达式来匹配以下格式的文件:
FILTER
<data>
ORDER
<data>
现在,我需要提取的是<data>
部分,这本来很简单,但我有以下困难:
1)这个模式可以重复(之间没有换行符)
2)可能没有<data>
。
特别地,此文件是可以的:
FILTER
test1
ORDER
test2
FILTER
test3
ORDER
FILTER
ORDER
我需要以下几组数据:"test1", "test2", "test3", "", "", ""
我已经尝试使用的正则表达式是:(?:FILTER\n(.*)\nORDER\n(.*))*
在这里可以测试此正则表达式。
我对正则表达式并不熟悉,感谢您的帮助。
FILTER(.*?)ORDER(.*?)(?=FILTER|$)
,然后相应地去除换行符。请注意,您需要包括s
修饰符以匹配点.
的换行符。 - HamZam
修改符号,这将改变整个含义。请删除它。(我让我的正则表达式可点击了吗?) - HamZaFILTER(.*?)ORDER(.*?)(?=FILTER|$)
更有效率。 - Wiktor Stribiżew