2016-08-10 6 views
0

Stringに文字が含まれていないかどうかをチェックしたいと思います(N S W E - 地図の方向)。そして、もしそうなら、私はdirection = that letterを設定し、真か偽のどちらかを返したいと思います。正規表現に文字列を一致させた文字列の一部を出力します

例:

入力:direction = matcher.group();が私に与え N

出力することを:私が受けたい 15.15.15 N

出力が期待されるように 15.15.15 N

それがマッチした文字列を出力します正規表現。私はそれを一致させた部分だけを印刷したい。文字は文字列の先頭または末尾に置くことができます。どのようにそれを作るためのアイデア?

public boolean example (String value) { 

    Pattern parrent = Pattern.compile(".*[a-zA-Z].*"); 
    Matcher matcher = parrent.matcher(value);   

    if(matcher.find()) { 
     direction = matcher.group(); 
     System.out.println("direction" + direction); 
     return false; 
    } 
    else 
     return true; 
    } 
+0

文字列に最初の 'N'、' S'、 'W'、または' E'を取得したいということですか?あなたは簡単に['s.replaceFirst("(?s)^(?:[^ NSWE] *。[NSWE])。*) "、" $ 1 ")'](http:// ideon.com/nWtzQq) –

答えて

3

あなたにはgroupがありません。

代わりに、ここでこれを試してみてください:

​​

ポイントは次のとおりです。あなたは、基本的

非空白を持っているものは何でもしている4文字の

スペース

1に興味があります。

したがって、気にしないものは無視する単純なパターンが必要です。 グループを返したい要素の周りにあります。

+0

ありがとうございました。できます。正規表現を 'Pattern pattern = Pattern.compile(" [NSWE] ");に変更する必要がありました; – dddeee

+0

あなたは歓迎です。私はあなたのために働く短いソリューションさえ見つけてうれしいです。 – GhostCat

関連する問題