0
現在、文字列形式のコンテンツであるトークンを抽出します。 私は既にthis topicを見ましたが、私の文脈では、私は自分のトークンを抽出できません。 私はこのコードを持っています:Java正規表現2つの文字列の間に特別な文字列を抽出します
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 ..");
}
}
}
どのように問題を解決できますか?事前に
おかげで、
Javaはエスケープせず、すなわち、最初のいくつかのオンラインツールで、あなたの正規表現を試してみてください。例: 'BinarySecurityToken'の後に' \\ '(エスケープされていないバージョン)とは何が一致していると思いますか? – Thomas
あなたの応答に感謝しますが、私は何も得ません –
あなたの正規表現の部分は、\ s:\ sはあなたの文字列に表示されない[空白]:[空白]と一致するように探しています。だから、他のすべてが正しかったとしても(それは私が疑う)、それでも一致しないだろう。 Thomasが言ったように、Googleの "Regex Tester"は、Javaで詰め込む前に、動作するようにパターンを取得します。 – Duston