Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用regexp抑制单行和多行注释?_Java_Regex_String - Fatal编程技术网

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 */"
被替换为

"         "