java正则表达式以特定字符开头和结尾并跳过

hava regex starts with and ends with and skipping a specific charachter

我想找到一个以特定特殊字符开头和结尾但在另一个特定字符时跳过的字符串。

我想查找任何以“hello”开头并以点“.”结尾的字符串。但不像“到此为止”。当“here end”在点“.”之前时,必须跳过这一步。

样本:

String para = "XXXX@gxxl.com. this will share the costs and hello you  the initial here end. must be carrefully done.Keep going."

我尝试了以下正则表达式,但它不起作用:

hello.+?((?=([.]))

我明白了:

"hello you  the initial here end."

但这是必需的:

"hello you  the initial here end. must be carrefully done."

你可以

hello.*?(?<!here end)\.

regex demo详情

  • hello - 固定字符串
  • .*? - 除换行字符外的任何零个或多个字符尽可能少
  • (?<!here end)\. - . 前面没有紧跟 here end.

如果您需要从匹配中排除 .,请将其放入环视 hello.*?(?<!here end)(?=\.)