我们最近将一个大型项目从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");
由于
答案 0 :(得分:0)
您可以使用淬火贪婪令牌解决方案:
\bnew\s+Alert\((?:(?!\.showAndWait\(\);\s*$)[\s\S])*"\);
请参阅regex demo和以下屏幕截图:
模式详情:
\bnew
- 整个字new
\s+
- 一个或多个空格Alert\(
- 一系列文字字符Alert(
(?:(?!\.showAndWait\(\);\s*$)[\s\S])*
- 匹配任何char([\s\S]
)的驯化贪婪令牌,它不是.showAndWait();
+零个或多个空格+行尾序列的起始字符 li>
"\);
- 一系列文字字符");