Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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]剥离多行字符串的一部分_Java_Regex_String - Fatal编程技术网

使用正则表达式[JAVA]剥离多行字符串的一部分

使用正则表达式[JAVA]剥离多行字符串的一部分,java,regex,string,Java,Regex,String,我正在尝试从一个文件中筛选一些内容,该文件的内容可作为Stringas进行访问: block "block1" { ADDSFDJF SDFSDFSDF SDFSDFSDF // subblock: subblock1 [master] include "/path/tofile/subblock1.conf"; +/- subblock subblock1 // subblock: subblock1 subblock "subblock1" { type TYPE; file "n

我正在尝试从一个文件中筛选一些内容,该文件的内容可作为
String
as进行访问:

block "block1"
{
ADDSFDJF
SDFSDFSDF
SDFSDFSDF

 // subblock: subblock1 [master]
 include "/path/tofile/subblock1.conf";
+/- subblock subblock1
// subblock: subblock1
subblock "subblock1"
{
 type TYPE;
 file "name.file";
 details  blah blah.
 other {sdhsdf};
 };
};

 file "dddd.file";
 details  blah blah.

 // subblock: subblock2
 include "/path/tofile/subblock2.conf";
+/- subblock subblock2
// subblock: subblock2
subblock "subblock2"
{
 type TYPE;
 file "name.file";
 details  blah blah.
 other {sdhsdf};
 more fields
};
};

这里我想删除每个子块的一些行,即:我想删除这些行:

+/- subblock subblock1
// subblock: subblock1
subblock "subblock1"
{
 type TYPE;
 file "name.file";
 details  blah blah.
 other {sdhsdf};
 };
};

我正在尝试
content.replaceALL()
但是我无法为start创建与
'+/-'
匹配的适当
regex
,并为其创建适当的结尾'}'括号

请帮我解决这个问题


[编辑]:正则表达式作为Java字符串

您可能能够处理:

^\s*
subblock
[\s\S]+?
^\s*\};$
请参阅。

注意:您必须在
Java

中对反斜杠进行双重转义,我可以通过regex实现这一点:

 (?m)\\+\\/\\-[\\s\\S]+?//[\\s\\S]+?(^\\};\\s+$)
作为java字符串。或

 \+\/\-[\s\S]+?//[\s\S]+?(^\};\s+$)
作为python正则表达式

这里,Pattern.MULTILINE or(?m)告诉Java接受锚定“^”和$以在每行的开始和结束处匹配(否则它们只在整个字符串的开始/结束处匹配)。 参考:

见:
!!

是的,在文本编辑器中使用regex\+\/\-[\s\s]+?//[\s]+?(^\};)可以使用空格,但在java中不能使用字符串“\\+\/\-[\\s\\s]+/[\\s\\s]+?(^\}”)”@所有的投票人我是stackoverflow的新手我不是这里的玩家。。从现在开始,我将尝试详细说明。@ApoorvJain:然后你可能会接受和/或投票表决答案(左边绿色勾号)。