2012-02-20 8 views
13

私のAndroidプロジェクトでは、正規表現と文字列があり、一致する表現が必要です。問題は、私はmatches()メソッドを見つけただけです。これはbooleanを返します。一致した文字列のみを返すものがありますか?たとえば、私の文字列が "12pmに店に行く"の場合、この文字列に時間があるかどうかをチェックしたいとします(この例では "12pm")。それは - それを返す)? ありがとうございます。Androidの正規表現 - 返された文字列を返す

答えて

29

必要なグループを取得する必要があります。 thisを読んでください。あなたはあなたの質問に対する答えを見つけるでしょう。
ここは簡単な例です。私はあなたがそれを理解すると思う。

Pattern p = Pattern.compile(".*?(\\d{2}(am|pm)).*"); 
Matcher m = p.matcher("go to the shop at 12pm"); 
if(m.matches()) 
    return m.group(1); 

これは実際にあなたがより良い方法で欲しいものを得ることができます12pm
を返します。

Pattern p = Pattern.compile("\\d{2}(am|pm)"); 
Matcher m = p.matcher("go to the shop at 12pm"); 
if(m.find()) 
    return m.group(0); //or you can write return m.group(); result will be the same. 
+0

これは私が必要とするものです。ありがとう、@アドミバン! – lomza

+0

@ shift66こんにちは、この質問を見ることができますか? http://stackoverflow.com/questions/34938232/android-regex-passing-of-text-output-from-method-to-method –

関連する問題