0

都市フィールドを検証する正規表現を作成しています。次のコードでは、スペースが 1 つある City フィールドのみを検証できます。

Pattern pattern_ = Pattern.compile("^[a-zA-Z]+(?:[\\s-][a-zA-Z]+)*$");

正規表現を改善して、複数のスペースを持つ都市フィールドを検証する方法について何かアドバイスはありますか?

さて、最後に私はこの正規表現を使用しています:

Pattern pattern_ = Pattern.compile("^[a-zA-Z]+(?:(?:\\s+|-)[a-zA-Z]+)*$");

しかし今、アクセントに問題があります。どのように都市フィールドにアクセントを追加できますか?

4

3 に答える 3

5

文字クラスの代わりに代替を使用します。

Pattern pattern_ = Pattern.compile("^[a-zA-Z]+(?:(?:\\s+|-)[a-zA-Z]+)*$");
于 2013-08-19T15:31:06.883 に答える
2

さて、最も簡単な方法は次のとおりです。

^[a-zA-Z\s-]+$

または、必要に応じて、これを行うことができます。これにより、文字列が空白またはハイフンで開始または終了しないことが保証されます。

^[a-zA-Z][a-zA-Z\s-]+[a-zA-Z]$

もちろん、\Java でエスケープすることを忘れないでください。

Pattern pattern_ = Pattern.compile("^[a-zA-Z][a-zA-Z\\s-]+[a-zA-Z]$");
于 2013-08-19T15:31:55.637 に答える
0

試す:

Pattern pattern_ = Pattern.compile("^[a-zA-Z\\s-]+$");
于 2013-08-19T15:29:54.050 に答える