java - 正则表达式删除字符串中给定的模式

标签 java regex

在 xml 中我们有一些标签,例如

<string1 : string2>

以及更多类似的内容。

我需要编写一个正则表达式来删除所有以“:”结尾的字符串,即这里的string1和“:”。 它应该始终位于 < >

例如输入 = <string1 : string2>

输出= <string2>

最佳答案

这是在 php 中执行此操作的方法:

<?php
 $str = "<string1 : string2>";
 $s = preg_replace('~(</?)[^>:]*:\s*~', "$1", $str);
 var_dump($s);
?>

用Java编辑

String str = "<ns2:senderId xmlns=\"netapp.com/fsoCanonical\">NetApp</ns2:senderId>";
System.out.println(str.replaceAll("(</?)[^>:]*:\\s*", "$1"));

输出

<senderId xmlns="netapp.com/fsoCanonical">NetApp</senderId>

关于java - 正则表达式删除字符串中给定的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5965275/

相关文章:

java - 如何循环遍历一个目录,获取所有文件名,然后在 Java 中获取这些文件的内容

java - 如何迭代 Google 表格中的所有行

regex - 对 URL 变量使用 MOD_REWRITE 并在不使用时删除空参数

Python正则表达式问题

regex - 使用正则表达式在文本中搜索 UUID

java - 为什么解析此日期字符串会引发无法解析的日期异常?

java - Java 的大表

java - 如何将Json请求中带unicode的值转换成简单字符?

字符类中的 Javascript 正则表达式无效范围

c# - 从连接字符串中检索密码的正则表达式