Java Regx删除字符串中的给定模式
在xml中,我们有一些标记,如Java Regx删除字符串中的给定模式,java,regex,Java,Regex,在xml中,我们有一些标记,如 还有更多像这样的 我需要编写一个正则表达式来删除所有以“:”结尾的字符串,也就是说,这里的string1和“:”也是。 而且它应该总是在里面 e、 g.输入= 输出=应仅捕获您感兴趣的部分。如何替换正则表达式可能因编程语言而异 在java中,您可以 string.replaceAll("<.*?:\s*(.*?)>", "<$1>"); string.replaceAll(“,”); 这是如何在php中实现的: <?php $s
还有更多像这样的
我需要编写一个正则表达式来删除所有以“:”结尾的字符串,也就是说,这里的string1和“:”也是。
而且它应该总是在里面<>
e、 g.输入=
输出=
应仅捕获您感兴趣的部分。如何替换正则表达式可能因编程语言而异
在java中,您可以
string.replaceAll("<.*?:\s*(.*?)>", "<$1>");
string.replaceAll(“,”);
这是如何在php中实现的:
<?php
$str = "<string1 : string2>";
$s = preg_replace('~(</?)[^>:]*:\s*~', "$1", $str);
var_dump($s);
?>
用Java编辑
String str=“NetApp”;
System.out.println(str.replaceAll((:]*:\\s*,“$1”);
输出
<senderId xmlns="netapp.com/fsoCanonical">NetApp</senderId>
NetApp
:]*:\s*([^>]*)>
使用您可以使用的xslt解析器搜索并替换为
<xsl:template match="*">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@*|text()|comment()|processing-instruction()">
<xsl:copy-of select="."/>
</xsl:template>
(?你需要捕获相同格式的结束标记吗?那么你可以告诉我如何在Java中完成它吗?)jeff非常感谢它的工作,但还有一个例外..假设我们有这样的xml输入@satyam:根据评论,我在上面用Java为你提供了一个示例。希望能满足你的要求。
<[^>:]*:\s*([^>]*)>
<xsl:template match="*">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@*|text()|comment()|processing-instruction()">
<xsl:copy-of select="."/>
</xsl:template>
(?<=<).*?:\s*(?=.*?>)