Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.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_Xml_Regex - Fatal编程技术网

Java 在现有标记正则表达式之外添加标记

Java 在现有标记正则表达式之外添加标记,java,xml,regex,Java,Xml,Regex,我有一个单独的xml,我想在名为scl 比如说 <documents> <rnl></rnl> <snl></snl> <scl>This is scl</scl> </documents> 这是scl 因此这是scl将被转换为这是scl 我如何修改以下内容以实现此目的?到目前为止我已经试过了 String content5 = "<scl>this is scl</scl&g

我有一个单独的xml,我想在名为
scl

比如说

<documents>
<rnl></rnl>
<snl></snl>
<scl>This is scl</scl>
</documents>

这是scl
因此
这是scl将被转换为
这是scl
我如何修改以下内容以实现此目的?到目前为止我已经试过了

String content5 = "<scl>this is scl</scl>";
System.out.println(content5.replaceAll("^(?:&lt;scl&gt;)(?:.*?)(?:&lt;/scl&gt;)", "<credit>$1</credit>" ));
String content5=“这是scl”;
System.out.println(content5.replaceAll(“^(?:scl)(?:.*?(:scl)”,“$1”);
一种方法是这样做:

String content5 = "<scl>this is scl</scl>";
System.out.println(content5.replace("<scl>", "<credit><scl>").replace("</scl>", "</scl></credit>"));
String content5=“这是scl”;
System.out.println(content5.replace(“,”).replace(“,”);
试试这个

    StringBuilder sb = new StringBuilder(content5);

    sb.insert(sb.indexOf("<scl>"), "<credit>");
    sb.insert(sb.indexOf("</scl>") + "</scl>".length(), "</credit>");

    String result = sb.toString();
StringBuilder sb=新的StringBuilder(content5);
sb.插入(sb.indexOf(“”,“”);
sb.插入(sb.indexOf(“”+“”.length(),“”);
字符串结果=sb.toString();
给你:

String content5 = 
    "<scl>this is scl</scl>\n" +
    "<blah>this isn't</blah>\n" +
    "<scl>this is scl</scl>\n" +
    "<blah>this isn't</blah>\n";
System.out.println(content5.replaceAll("(?:<scl>)(?:.*?)(?:</scl>)", "<credit>$0</credit>" ));
字符串内容5=
“这是scl\n”+
“这不是\n”+
“这是scl\n”+
“这不是\n”;
System.out.println(content5.replaceAll((?:)(?:.*)(?:),“$0”);
输出:

<credit><scl>this is scl</scl></credit>
<blah>this isn't</blah>
<credit><scl>this is scl</scl></credit>
<blah>this isn't</blah>
这里是scl
这不是
这是scl
这不是

您可以完全改变思考问题的方式,并使用适当的库处理XML。非常容易学习,非常简单和直接使用。您需要的一切都在这个链接中解释。

您不能在您的案例中使用xml解析器吗?@zvzdhk这将是完成此任务的明智方法。为什么不使用xml解析器..我不能。我必须使用外部APIT,它不适用于其他类型:String content5=“这是scl”