正则表达式找到没有换行符的代码

时间:2017-04-13 21:53:31

标签: regex intellij-idea

我想找到任何代码行,其中 } 后面是中断,然后是/**.

    }
    /**

我不想找到代码行,其间有空行。

NOT:

    }

    /**

我发现自己无法写出这样的正则表达式。 我认为它会像}\n\/\*\*一样简单,但这并不起作用。

我需要这样才能在使用IntelliJ的Java类中找到糟糕的格式化。

4 个答案:

答案 0 :(得分:2)

这应该这样做

<强> \s*(\}\n\h\s*\/\*{2})

<强> https://regex101.com/r/hoCOdF/3

  

enter image description here

     

enter image description here

\} 字面匹配(区分大小写)
\n 匹配换行符(换行符)(ASCII 10)
\/ 匹配字符/字面(区分大小写)
\*{2} 匹配字符*字面意思(区分大小写) - {2} 量词 - 准确匹配2次 \h 匹配任何水平whitespace字符(等于 [[:blank:]]

答案 1 :(得分:1)

问题是您必须在新行之后考虑空格,请执行此操作

}\n\h*\/\*\*

} 字面匹配(区分大小写)
\n 匹配换行符(换行符)(ASCII 10)
\h 匹配任何水平空白字符(等于[[:blank:]])

正则表达式匹配的图像

enter image description here

注意

要查找代码中的格式问题,您可以使用插件。查看http://www.sonarlint.org/

答案 2 :(得分:1)

如果您的文件是在Windows }[\n\r]\/\*\*

中创建的,还包括回车

编辑:使用此选项在中断和{:之间包含空格和制表符 }[\n\r]( |\t)+\/\*\*

答案 3 :(得分:0)

你可以使用具有正向前瞻性的正则表达式:

\}(?=\n[^\n]*\/\*\*)

<强> Working demo

由于您使用IntelliJ进行了标记,因此您可以在下面找到正则表达式的屏幕截图

enter image description here