RegEx匹配某个字符串,直到该字符串的下一个出现

时间:2017-02-14 10:40:38

标签: java regex

我需要匹配一个字符串(让它命名为" / 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应该匹配。 感谢任何帮助,提前谢谢

1 个答案:

答案 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