Java正则表达式提取两个字符串之间的特殊字符

时间:2016-03-31 13:36:50

标签: java matcher

目前我想提取一个内容为字符串格式的令牌。 我已经看过this topic,但在我的背景下,我无法提取我的令牌。 我有这个代码:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class SOAPParsing {
    public static void main(String[] args) {
        String test = "<BinarySecurityToken Id=\"TotoToken\">Kqdsqd/Jxugtqsk6Ws3q3sd54sq6d4q6sd4qs6d4qs6dq6sd98d69qdq9dsq7d98q7sdqdq7qsddq7Mw2RMmhevkJt/4q6sd7qsIRveuTTqdqsa/zxqsdqdqNg==</BinarySecurityToken>";
        Pattern pattern = Pattern.compile("BinarySecurityToken\\\\Id=\"TotoToken\">\\s:\\s(.+?)\\</BinarySecurityToken>");
        Matcher matcher = pattern.matcher(test);
        if (matcher.find()) {
            System.out.println(matcher.group(1));
        } else {
            System.out.println("nothing ..");
        }
    }
}

我如何解决问题?

提前致谢,

1 个答案:

答案 0 :(得分:1)

试试这个正则表达式:

"<BinarySecurityToken Id=.*>(.*)</BinarySecurityToken>"