我必须删除两个字符串之间的数据,如下所示
<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/