创建 Java 正则表达式模式以匹配 XML 中的字符串 [英] Create Java Regex Pattern to match string inside XML
本文介绍了创建 Java 正则表达式模式以匹配 XML 中的字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试创建正则表达式模式以匹配 XML 文本中的字符串.例如:
I'm trying to create regex pattern to match String inside XML text. For example:
要匹配的字符串:A PLP não será fechada
XML 文本:
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>A PLP não será fechada, o(s) objeto(s) [PX44258394BR, PX44258388BR, PX44258382BR] já estão vinculados em outra PLP!</faultstring>
<detail>
<ns2:SigepClienteException
xmlns:ns2="http://cliente.bean.master.sigep.bsb.correios.com.br/">A PLP não será fechada, o(s) objeto(s) [PX44258394BR, PX44258388BR, PX44258382BR] já estão vinculados em outra PLP!
</ns2:SigepClienteException>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
我无法使用 Pattern.matches(regex, stringMessage); 进行匹配;
I'm having trouble to match using Pattern.matches(regex, stringMessage);
private static final String trackingCodeError1 = ".* A PLP não será fechada, .*";
public boolean execute(String errorMessage) {
Pattern pattern = Pattern.compile(trackingCodeError);
return Pattern.matches(trackingCodeError, errorMessage);
}
请帮忙.
推荐答案
您只需使用 String.contains
即可完成:
You can accomplish it simply by using String.contains
:
class Main {
public static void main(String[] args) {
String xml="<soap:Envelope\n" +
" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n" +
" <soap:Body>\n" +
" <soap:Fault>\n" +
" <faultcode>soap:Server</faultcode>\n" +
" <faultstring>A PLP não será fechada, o(s) objeto(s) [PX44258394BR, PX44258388BR, PX44258382BR] já estão vinculados em outra PLP!</faultstring>\n" +
" <detail>\n" +
" <ns2:SigepClienteException\n" +
" xmlns:ns2=\"http://cliente.bean.master.sigep.bsb.correios.com.br/\">A PLP não será fechada, o(s) objeto(s) [PX44258394BR, PX44258388BR, PX44258382BR] já estão vinculados em outra PLP!\n" +
" </ns2:SigepClienteException>\n" +
" </detail>\n" +
" </soap:Fault>\n" +
" </soap:Body>\n" +
"</soap:Envelope>";
String searchStr="A PLP não será fechada";
System.out.println(xml.contains(searchStr));
}
}
输出:
true
这篇关于创建 Java 正则表达式模式以匹配 XML 中的字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文