0

この正規表現を使用して、フィールドCityを確認します。

"[a-zA-Z]+[[ '-]?[a-zA-Z]+]*"

ただし、次のような名前にも適しています。

サント'''''アンジェロ

アンドリア---------バルレッタ

単語間の特殊文字「"、"'」および「-」は1つだけである必要があります。例えば:

サンタンジェロデイロンバルディ

それは良いはずですが、そうではありません:

サンタンジェロ---デイロンバルディ

4

2 に答える 2

4

繰り返しに括弧を使用したい:

[a-zA-Z]+(?:[ '-][a-zA-Z]+)*

あなたが試したこと ( ) は、 、、および[[ '-]?[a-zA-Z]+]を含む文字クラスを意味し、事実上 と同等です。もう一方のサブパターンは と で区切られており、によってキャプチャされなくなりますが、これはわずかな最適化です。[ '-]?[a-zA-Z]+[a-zA-Z?+ '-]()?:

于 2012-11-07T23:12:51.407 に答える
0

次のコードを使用して都市を検証します。

public static boolean validateCity( String city )
{
return city.matches( "([a-zA-Z]+|[a-zA-Z]+\\s[a-zA-Z]+)" );
}
于 2012-11-22T17:52:21.060 に答える