java - 删除两个字符串之间的数据

标签 java regex string

我必须删除两个字符串之间的数据,如下所示

<PACKET>752</PACKET> 
  <TIME>23-Oct-2013 12:05:46 GMT Standard Time</TIME> 
  <INTERVAL>2</INTERVAL> 

<HEADER>hi this should not be printed only</HEADER>
<DATA></DATA>

在此,我必须删除

之间的数据。
任何人都可以为此提供正则表达式吗?

最佳答案

我认为这可以用 RegEx 完成工作:

String str="b1<HEADER>aaaaa</HEADER>b2";
String newstring = str.replaceAll("<HEADER[^>]*>([^<]*)<\\/HEADER>", "");
System.out.println(newstring);

这会打印 b1b2

如果 <HEADER> 里面还有其他标签上面的方法将会失败。考虑下面的例子:

String str = "b1<HEADER>aa<xxx>xx</xxx>aaa</HEADER>b2";
String newstring = str.replaceAll("<HEADER[^>]*>([^<]*)<\\/HEADER>", "");
System.out.println(newstring);

这将打印:b1<HEADER>aa<xxx>xx</xxx>aaa</HEADER>b2

要克服这个问题并删除包含标签,请使用以下命令:

newstring = str.replaceAll("<HEADER.+?>([^<]*)</HEADER>", "");

这将打印 b1b2 .

关于java - 删除两个字符串之间的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19540438/

相关文章:

java - 正则表达式匹配阿拉伯语文本中的反括号

java - 如何使用 Scanner 处理无效输入(InputMismatchException)引起的无限循环

regex - 正则表达式匹配没有 0's and 1' 子串的 '011' s 的字符串

php - 使用部分 _id 字符串查找 mongodb 文档

c - C 中的字符串处理实践

php - 具有相同参数的相同函数的不同输出

php - str_replace() 删除字符串中的数值?

java - 从给定的子节点获取父节点

java - admob 智能横幅需要位于应用程序底部(通过 java)

php - 反向preg_replace