创建 Java 正则表达式模式以匹配 XML 中的字符串 [英] Create Java Regex Pattern to match string inside XML

查看:29
本文介绍了创建 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆