2016-07-28 11 views
0

私は+852(2)78911に一致するようにパターン^\\+[0-9]+をしようとしていたが、のJava正規表現パターンを認識しない一致する「エスケープ+」

Pattern.matches("^\\+[0-9]+", s)

falseを返していること、それはそうです。私がregexrで試してみるとうまくいきます。私はこれをJavaの意味で正しくエスケープしていませんか?

+0

あなたのパターンに括弧が一致しない場合、それはregExprので仕組み来ますか?あなたはどんな結果を期待していますか? Matcher#find()を使うだけでいいと思います。 –

+0

文字列の残りの部分ではなく、 '+852'となります。 –

答えて

0

ではなく、この正規表現を試してみてください:^\\+[0-9\\(\\)]+$

+1

フォーマット機能は、http://stackoverflow.com/editing-helpにあります。文字クラス内の括弧をエスケープする必要はありません。 'matches'メソッドを使うとき、アンカーは暗黙的であることにも注意してください。 –

関連する問題