Java Regx删除字符串中的给定模式

Java Regx删除字符串中的给定模式,java,regex,Java,Regex,在xml中,我们有一些标记,如 还有更多像这样的 我需要编写一个正则表达式来删除所有以“:”结尾的字符串,也就是说,这里的string1和“:”也是。 而且它应该总是在里面 e、 g.输入= 输出=应仅捕获您感兴趣的部分。如何替换正则表达式可能因编程语言而异 在java中,您可以 string.replaceAll("<.*?:\s*(.*?)>", "<$1>"); string.replaceAll(“,”); 这是如何在php中实现的: <?php $s

在xml中,我们有一些标记,如

还有更多像这样的

我需要编写一个正则表达式来删除所有以“:”结尾的字符串,也就是说,这里的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*(?=.*?>)