2016-07-25 5 views
1

以下のような複数の組み合わせの文字列があります。複数の組み合わせで文字列からトークンを取得する方法

msqlora -sn $(PWF_pdmm8107) 
    msqlora -n $(PWF_pdmm8107) 
    msqlora $(PWF_pdmm8107) 

文字列は単一です。実行時には、上記のいずれかの状況が発生する可能性があります。

文字列から$(PWF_pdmm8107)トークンを取得したいとします。

これまで何をしていますか?

while (st.hasMoreTokens()) 
{ 
    if (st.nextToken().equals("-sn")) 
    { 
    pwf = st.nextToken(); 
    } 
} 

上記の文字列の組み合わせから$(PWF_pdmm8107)を取得できる方法をお勧めします。あなたがこれを行うことができます

おかげ

+0

検索しようとしている文字列は常に変化しますか、それとも常に同じですか? – Cathal

答えて

1

一つの方法は、区切り文字としてスペースを使用して配列にsplit()文字列になり、正規表現が許されるならば、答えを考えてみましょう最後の要素

String input = "msqlora -sn $(PWF_pdmm8107)"; 
String[] tmp = input.split(" "); 
String output = tmp[tmp.length - 1]; 
0

を選択します。 。 "(\\$\\(.*\\))"

String str = "msqlora -sn $(PWF_pdmm8107)\n" + 
" msqlora -n $(PWF_pdmm8107)\n" + 
" msqlora $(PWF_pdmm8107)"; 
    Pattern compile = Pattern.compile("(\\$\\(.*\\))"); 
      Matcher match = compile.matcher(str); 
      while(match.find()) 
      { 
       System.out.println(match.group()); 
      } 

出力: -

$(PWF_pdmm8107) 
$(PWF_pdmm8107) 
$(PWF_pdmm8107) 
関連する問題