2011-11-15 11 views
0

何らかの理由で、「preference_network_」のパターンマッチを得ることができず、その後に単一の文字列として他のものが続きます。私は、key.matches()メソッドを使用して、設定キーに "preference_network_"が含まれているかどうかをテストできます。どのように私はこれを働かせることができます、私は成功なしでいくつかのことを試してみました。ありがとうございます。Android/Java Pattern Matching

UPDATE

明確ではないため申し訳ありません。これらのソリューションはすべて私が実行し、知ることができます。私がしようとしているのは、keyMatches(String regularExpression)関数を使用することです。ここでkeyは、onSharedPreferenceChangeListenerメソッドのパラメータです。これが私が働くことに苦労していることです。

私はこれを使用する必要はないことを知っています。私はstartsWithを使うことができます。私はちょうど不思議だった。

おかげで正規表現がなければ

答えて

2

ソリューション:

str.startsWith("preference_network_"); 
str.contains("preference_network_"); 

パターン

// the same as contains. 
Pattern p = Pattern.compile("preference_network_"); 
p.matcher(str).find(); 

// the same as startsWith. 
Pattern p = Pattern.compile("^preference_network_"); 
p.matcher(str).find(); 

を使用すると、matches()あなたヘクタールを使用したい場合ライターフルパターンにVEの:

Pattern p = Pattern.compile("^preference_network_.*"); 
p.matcher(str).matches(); 

あなたのパターンは^で始まり、$で終わる、すなわち

Pattern.compile("^something$").matcher(str).find()Pattern.compile("something").matcher(str).matches()

+0

、すべてのパラメータ文字列のルックスが含まれていると同じであるかのように試合を行っているのでポジション。質問では、 "" preference_network_ "とそれに続く" –

1

:パターンを使用せずに

boolean matches = myString.startsWith("preference_network_");