Java Eclipse Regex Multiline Search

时间:2015-11-12 17:42:11

标签: java regex eclipse swing replace

我们最近将一个大型项目从Swing转换为JavaFX。编写了一个转换程序来自动执行某个过程,这节省了大量时间,但也给我们留下了一些问题。其中一个是我们有一些从未调用showAndWait()的警报。我希望将Regex放在一起,找到符合以下条件的项目中的所有实例:

新警报开始(

“结束;

可能包含0个或多个换行符以及括号之间的任何字符。

我能够想出这个:new Alert\(*.*\R*.*\"\)\;

但它似乎也包括以showAndWait()调用结束的结果。

示例:

new Alert(AlertType.INFORMATION, "This alert should not be matched").showAndWait();

new Alert(AlertType.INFORMATION, "This alert should be matched");

由于

1 个答案:

答案 0 :(得分:0)

您可以使用淬火贪婪令牌解决方案:

\bnew\s+Alert\((?:(?!\.showAndWait\(\);\s*$)[\s\S])*"\);

请参阅regex demo和以下屏幕截图:

enter image description here

模式详情

  • \bnew - 整个字new
  • \s+ - 一个或多个空格
  • Alert\( - 一系列文字字符Alert(
  • (?:(?!\.showAndWait\(\);\s*$)[\s\S])* - 匹配任何char([\s\S])的驯化贪婪令牌,它不是.showAndWait(); +零个或多个空格+行尾序列的起始字符
  • "\); - 一系列文字字符");