2016-03-31 20 views
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 .."); 
     } 
    } 
} 

どのように問題を解決できますか?事前に

おかげで、

+0

Javaはエスケープせず、すなわち、最初のいくつかのオンラインツールで、あなたの正規表現を試してみてください。例: 'BinarySecurityToken'の後に' \\ '(エスケープされていないバージョン)とは何が一致していると思いますか? – Thomas

+0

あなたの応答に感謝しますが、私は何も得ません –

+0

あなたの正規表現の部分は、\ s:\ sはあなたの文字列に表示されない[空白]:[空白]と一致するように探しています。だから、他のすべてが正しかったとしても(それは私が疑う)、それでも一致しないだろう。 Thomasが言ったように、Googleの "Regex Tester"は、Javaで詰め込む前に、動作するようにパターンを取得します。 – Duston

答えて

1

はあなたの正規表現としてこれを試してみてください:

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

関連する問題