我正在尝试编写一个正则表达式,它将检查给定字符串是否为“有效”名称。从数据库中检索名称字符串,然后检查它们是否包含奇怪的字符(因为这是一个瑞典的系统,我仍然需要包括一些在瑞典名字中常见的奇怪字符
问题是,这会使它输入的每一个字符串都失败。我的猜测是正则表达式没有正确终止,如果字符串结尾失败。但我不明白为什么。
因此,我的正则表达式如下所示——我在示例中尝试了两个正则表达式字符串:
public static bool NameCheck(string name)
{
if(name == "" || name == " " || name == null)
{
return false;
}
//Regex regex = new Regex(@"/^[a-zåäöÃ
ÃÃáéóúýÃüÃÃÃÃÃÃÃ\-\.]+([---\s][a-zåäöÃ
ÃÃáéóúýÃüÃÃÃÃÃÃÃ\-\.]+)+/i");
Regex regex = new Regex(@"/^[a-zåäöÃ
ÃÃáéóúýÃüÃÃÃÃÃÃÃ\-\.]+([---\s][a-zåäöÃ
ÃÃáéóúýÃüÃÃÃÃÃÃÃ\-\.]+)+$/i");
return regex.IsMatch(name);
}
注意:我通过在正则表达式检查之前分割字符串来解决系统中的问题,这样我就不必处理空白,但我很好奇正则表达式为什么不工作。