Java 如何使用regexp抑制单行和多行注释?
我需要找到字符串中的所有多行注释,并用空格(如果注释在一行中)或Java 如何使用regexp抑制单行和多行注释?,java,regex,string,Java,Regex,String,我需要找到字符串中的所有多行注释,并用空格(如果注释在一行中)或\n(如果注释在多行中)替换它们。 例如: int/* one line comment */a; 应改为: int a; int a; 这是: int/* more than one line comment*/a; 应改为: int a; int a; 我有一个包含所有文本的字符串,我使用了以下命令: file = file.replaceAll("(/\\*([^*]|(\\*+[^*/]))*\\*+/)","
\n
(如果注释在多行中)替换它们。
例如:
int/* one line comment */a;
应改为:
int a;
int
a;
这是:
int/*
more
than one
line comment*/a;
应改为:
int a;
int
a;
我有一个包含所有文本的字符串,我使用了以下命令:
file = file.replaceAll("(/\\*([^*]|(\\*+[^*/]))*\\*+/)"," ");
其中file是字符串
问题是它找到了所有的多行注释,我想把它分为两种情况。
我该怎么做呢?这可以通过和来解决
输出:
hello
there world
注意:如果您希望为所有不在注释内的文本保留正确的行号/列(如果您希望在错误消息等中返回源代码,则很好),我建议您这样做
String replacement = toReplace.replaceAll("\\S", " ");
将所有非空白替换为空白。这样会保留\n
,并且
"/* abc */"
被替换为
" "
这可以通过使用和解决
输出:
hello
there world
注意:如果您希望为所有不在注释内的文本保留正确的行号/列(如果您希望在错误消息等中返回源代码,则很好),我建议您这样做
String replacement = toReplace.replaceAll("\\S", " ");
将所有非空白替换为空白。这样会保留\n
,并且
"/* abc */"
被替换为
" "