2011-08-26 11 views
-8

私はアンドロイドアプリで正規表現で名前を検証しようとしています。名前のための正規表現を作成するには文字だけで " - " i java?

したがって、私のルールは次のとおりです。 (A-ö、A-Ö)、およびハイフンは1つだけです。

これは名前を確認するために最高のアイデアであることはない...

+4

ここで項目41を読む:http://stackoverflow.com/questions/6162484/why-does-modern-perl-avoid-utf-8-by-default/6163129#6163129 – NullUserException

+0

[ this](http://www.regular-expressions.info/tutorial.html)正規表現のウェブサイトですが、それはかなりうまく説明されています。 – Jeffrey

+0

@ NullUserException:それはPerlではなく、Javaです。しかし、これは彼が求めている簡単な正規表現です... – Kheldar

答えて

3

を私が試してみましたが、REG式言語は、私の頭痛を与えます。しかし、その後、あなたは次の例を使用することができ、あなたの要件を解決してきたと仮定すると:

if(input.matches("[a-zA-Z]+(\\-[a-zA-Z]+)?")) { 
    //OK 
} else { 
    //Invalid 
} 

いくつかの例を私はthis pageを使用してテストしてみた:

String  matches? 
qwe   Yes   
qwe-   No 
qwe-qwe  Yes 
qwe-qwe-  No 
qw2e-qwe2  No 
qwe-qwe-qwe No 
2

http://developer.android.com/reference/java/util/regex/Pattern.htmlはあなたに基礎を提供します。特に

  • [[a-f][0-9]]はあなたが行うOR演算ができることを示します。
  • [d-f] ASCIIを選択することができます示してはそれもわかります

の範囲:

ほとんどの時間を、内蔵の文字クラスは

より有用であり、説明します\wおよび\Wセレクタ。 \wは下線と数字を受け入れます。

[[A-Z][a-z]-]+が有効です。プラスはあなたが少なくとも1人のキャラクターを得ることを保証するためですが、もしあなたが - と呼ばれるユーザーを持っていれば、それは素晴らしいイホです。

EDIT:

アプリの名前を追加したい場合は、私もそれを購入しないように注意してくださいと思います。このような怠惰は私がインストールしたくないアプリにしかつながりません。

関連する問題