0

我使用这个正则表达式来检查字段 City:

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

但它也适用于以下名称:

圣'''''安吉洛

安德里亚---------巴列塔

我希望单词之间的特殊字符“”,“”和“-”必须是一个且只有一个。例如:

圣天使-代隆巴第

它必须是好的,但不是:

圣天使---Dei Lombardi

4

2 回答 2

4

您想使用括号进行重复:

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

您尝试的 ( [[ '-]?[a-zA-Z]+]) 表示一个字符类,包含[ '-]、和?,实际上与. 另一个上的子模式用and分隔,这使得它不被捕获,这是一个轻微的优化。[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 回答