正则表达式在 Eclipse 中进行多行搜索

regex to do multi line search in eclipse

我需要一个正则表达式来匹配包含 "private final VARIABLE".

行之前的注释

输入:

/**
*okay1
*/
menu
/**
*  okay2.
*/
private final VARIABLE;

输出应该是:

/**
*  okay2.
*/
private final VARIABLE;

字符串 okay1 和 okay2 可以是任何东西。他们在这里代表评论。我试过这样做但行不通。

 ((\/\*\*[\S\s]*\*\/){1})[\s]*(private\s*final\s*VARIABLE\;)

这也符合我不想要的第一条评论 (okay1)。我熟悉正则表达式,但这并不简单。将不胜感激任何帮助。谢谢

您可以使用像

这样的正则表达式
/\*+[^*]*\*+(?:[^/*][^*]*\*+)*/\s*(private\s+final\s+VARIABLE;)

online demo

详情

  • /\*+ - 匹配注释开头,/* 和其后的任何 0+ 星号
  • [^*]*\*+ - 匹配 * 以外的 0+ 个字符,后跟 1+ 个文字 *
  • (?:[^/*][^*]*\*+)* - 0+ 个序列:
    • [^/*][^*]*\*+ - 不是 /*(与 [^/*] 匹配)后跟 0+ 个非星号字符([^*]*)后跟1+ 个星号 (\*+)
  • / - 收盘 /
  • \s* - 0+ 个空格
  • (private\s+final\s+VARIABLE;) - 第 1 组:private,1+ 个空格,final,1+ 个空格,VARIABLE;.