我需要匹配一个字符串(让它命名为" / export / home")以及后面的所有内容(包括可选的新行),直到下一个字符串出现。
我尝试了/(/export/home.\n.)(.)/但它不会匹配从字符串到字符串的正确集合。
示例:
/export/home/bla "123" "bla" test 1
/export/home/bla "123" "bla" test 2
/export/home/bla "123" "bla" test 3
test4
test5
/export/home/bla "123" "bla" test 6
/export/home/bla "123" "bla" test 7
/export/home/bla "123" "bla" test 8
test9
/export/home/bla "123" "bla" test 1
所有内容,包括从/ export / home到下一个/ export / home应该匹配。 感谢任何帮助,提前谢谢
答案 0 :(得分:1)
您可以使用tempered greedy token:
(?s)/export/home(?:(?!/export/home\b).)*
^^^^^^^^^^^^^^^^^^^^^^^^
请参阅regex demo
(?s)
会使.
匹配任何字符,包括换行符,/export/home
将匹配/export/home
,(?:(?!/export/home).)*
将匹配任何字符({{1} }},零次或多次出现(.
),不会启动*
文字字符序列。
如果您unroll模式,它将看起来像
/export/home
请参阅this demo