Regex 正则表达式查找不带换行符的代码

Regex 正则表达式查找不带换行符的代码,regex,intellij-idea,Regex,Intellij Idea,我想找到任何代码行,其中一个}后跟一个break,然后是一个/** } /** 我不想在代码行之间有空行的地方找到代码行 不是: 我发现自己写不出这样的正则表达式。 我以为它会像}\n\/\*\*一样简单,但这不起作用 我需要这个来发现IntelliJ Java类中的错误格式。您可以使用具有积极前瞻性的正则表达式,如下所示: \}(?=\n[^\n]*\/\*\*) 由于您使用IntelliJ标记,下面是正则表达式工作的屏幕截图 问题是您必须考虑新行之后的空格,请执行此操作

我想找到任何代码行,其中一个
}
后跟一个break,然后是一个/**

    }
    /**
我不想在代码行之间有空行的地方找到代码行

不是:

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


我需要这个来发现IntelliJ Java类中的错误格式。

您可以使用具有积极前瞻性的正则表达式,如下所示:

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

由于您使用IntelliJ标记,下面是正则表达式工作的屏幕截图


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

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

正则表达式匹配的图像

注意


要查找代码中的格式问题,可以使用一些插件。查看。

如果您的文件是在Windows中创建的,也包括回车符[\n\r]\/\*\*\*

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

这样就可以了

\s*(\}\n\h\s*\/\*{2})

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

@0m3r:这在IntelliJ中不起作用。台词有些不同。我用了你的例子来匹配我的例子,你可以看到它不起作用:我已经做了,但也没有结果。我有一个开放的类,它有这种格式,所以它至少应该能够找到这一个,但它没有。@Spen,我更新了答案,还添加了一个工作良好的截图。不同的是,在我的情况下,新行不是以**:@Spen开始的,你使用的是我提供给你的不同的正则表达式,我使用的是lookarounds。检查答案中提供的演示链接,不管它们开头是否包含空格,抱歉,示例中的正则表达式是来自0m3r的正则表达式。我刚刚发布了这个链接,因为你的正则表达式也不匹配。这里是正确的链接:如上所述,我的案例中有一个小小的差异,这让我很难做到:@Spen好的,让我试试其他答案下面提到的差异,这在我的案例中不起作用,因为在下一行的注释前有空格。@Spen看我的编辑,看看工作示例,更新后的答案确实有效!非常感谢。我看不出这会起作用。@Spen您也可以用
\h
替换
,以匹配任何空格,但如果
/**
前面有字符,则不匹配。不客气,谢谢你的接受,祝你好运!在我接受你的答案后,你把它改成了一个不起作用的正则表达式。因此,我改变了被接受的答案。与此同时,你又改变了正则表达式,现在它又开始工作了。
}\n\h*\/\*\*