私は+852(2)78911
に一致するようにパターン^\\+[0-9]+
をしようとしていたが、のJava正規表現パターンを認識しない一致する「エスケープ+」
Pattern.matches("^\\+[0-9]+", s)
がfalse
を返していること、それはそうです。私がregexrで試してみるとうまくいきます。私はこれをJavaの意味で正しくエスケープしていませんか?
私は+852(2)78911
に一致するようにパターン^\\+[0-9]+
をしようとしていたが、のJava正規表現パターンを認識しない一致する「エスケープ+」
Pattern.matches("^\\+[0-9]+", s)
がfalse
を返していること、それはそうです。私がregexrで試してみるとうまくいきます。私はこれをJavaの意味で正しくエスケープしていませんか?
ではなく、この正規表現を試してみてください:^\\+[0-9\\(\\)]+$
フォーマット機能は、http://stackoverflow.com/editing-helpにあります。文字クラス内の括弧をエスケープする必要はありません。 'matches'メソッドを使うとき、アンカーは暗黙的であることにも注意してください。 –
あなたのパターンに括弧が一致しない場合、それはregExprので仕組み来ますか?あなたはどんな結果を期待していますか? Matcher#find()を使うだけでいいと思います。 –
文字列の残りの部分ではなく、 '+852'となります。 –