1

ここでは、で始まる携帯電話番号+91とその後の携帯電話番号の検証が必要です10 digit number。私は次の+91 pincodeようにedittextに追加しています:

edtmobile.append("+91(-)");したがって、edittext(UI)を表示する+91と、すでに10桁の数字があります。

私は次のような正規表現を使用しています:

String regExPhone = "(+91(-)?|91(-)?|0(-)?)?[0-9]{10}";

しかし、次のようなエラーが発生しました:

E/AndroidRuntime( 1411): java.util.regex.PatternSyntaxException: Syntax error U_REGEX_RULE_SYNTAX near index 2:
E/AndroidRuntime( 1411): (+91(-)?|91(-)?|0(-)?)?[0-9]{10}
E/AndroidRuntime( 1411):   ^

私がどこで間違いを犯したか教えてください、そして同じための別の解決策があります。

ありがとう。

4

1 に答える 1

0

+正規表現の特殊文字であり、エスケープする必要があります

試す

String regExPhone = "(\+91(-)?|91(-)?|0(-)?)?[0-9]{10}";

また、オプションにするために単一の文字をグループ化する必要はありません。

String regExPhone = "(\+91-?|91-?|0-?)?[0-9]{10}";

同じだろう。

于 2012-08-16T09:15:21.613 に答える