[英]Java String Replace on an XML pattern
我有以下 XML 字符串:
String XML = "<TEST><MESSAGEID>5435646578</MESSAGEID></TEST>";
xml 字符串中的數字不斷變化,所以我想做一個字符串替換並希望將 XML 變成
<TEST><MESSAGEID></MESSAGEID></TEST>
我正在尋找做這樣的事情,但我不確定如何獲取 replaceAll 方法中第一個參數的模式。
public class HelloWorld {
public static void main(String[] args) {
String XML = "<MESSAGEID>5435646578</MESSAGEID>";
String newStr = XML.replaceAll("<MESSAGEID>*</MESSAGEID>", "<MESSAGEID></MESSAGEID>");
System.out.println(newStr);
}
}
模式<MESSAGEID>[0-9]+</MESSAGEID>
會起作用。 如果您的輸入結構可以更改,您可能需要改用 XML 解析器。
我會使用字母數字模式,除非您絕對確定它只是數字:
// alphanumeric
String newStr = uotmXML.replaceAll("<MESSAGEID>\w+</MESSAGEID>", "<MESSAGEID></MESSAGEID>");
// digits
String newStr = uotmXML.replaceAll("<MESSAGEID>\d+</MESSAGEID>", "<MESSAGEID></MESSAGEID>");
如果您保證格式不會改變,我會使用正則表達式^<MESSAGEID>(\\d+)</MESSAGEID>$
來查找數字(在第 1 組中)。 否則我會使用像 JAXB 或 Jackson 這樣合適的 XML 庫。
嘗試在uotmXML.replaceAll("<MESSAGEID>*</MESSAGEID>", ...
用[^<]+
替換你的*
。這將匹配所有內容,直到<
字符
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.