无法检索Java中特定文本的值

时间:2018-09-18 10:25:54

标签: java

我有一个很长的文字,如下所示:

  

name =“ sessionValidity” value =“ 2018-09-13T16:28:28Z” type =“ hidden”   name =“ shipBeforeDate” value =“ 2018-09-17” name =“ merchantReturnData”   value =“”,name =“ shopperLocale” value =“ en_GB” name =“ skinCode”   value =“ CeprdxkMuQ” name =“ merchantSig”   value =“ X70xAkOaaAeWGxNgWnTJolmy6 / FFoFaBD47IzyBYWf4 =”

现在,我必须找到存储在值字符串中的所有数据。 请帮忙。

1 个答案:

答案 0 :(得分:0)

通常,最糟糕的事情是使用正则表达式解析HTML。 Detailed explonation here.

出于解析数据和正确处理数据的目的,您应该考虑使用高级标记解析器,例如jaxbjsoupany other

当然,这取决于具体情况,在您的情况下,也许这个可以完成工作...

private static List<String> extractValuesAsUselessList(String theString) {
    List<String> attributes = new ArrayList<>();

    if (theString != null && !theString.equals("")) {
        Matcher matcher = Pattern.compile("\\s([\\w+|-|:]+)=\"(.*?)\"").matcher(theString);

        while (matcher.find()) {
            if ("value".equals(matcher.group(1))) {
                attributes.add(matcher.group(2));
            }
        }
    }

    return attributes;
}