Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C语言中的正则表达式问题#_C#_Regex - Fatal编程技术网

C# C语言中的正则表达式问题#

C# C语言中的正则表达式问题#,c#,regex,C#,Regex,我正在尝试编写一个正则表达式,它将检查给定字符串是否为“有效”名称。从数据库中检索名称字符串,然后检查它们是否包含奇怪的字符。(因为这是针对瑞典的系统,所以我仍然需要包括一些在瑞典名字中常见的奇怪字符。) 问题是,这会使它输入的每一个字符串都失败。我的猜测是正则表达式没有正确终止,如果字符串结尾失败。但我不明白为什么 因此,我的正则表达式如下所示——我在示例中尝试了两个正则表达式字符串: public static bool NameCheck(string name) {

我正在尝试编写一个正则表达式,它将检查给定字符串是否为“有效”名称。从数据库中检索名称字符串,然后检查它们是否包含奇怪的字符。(因为这是针对瑞典的系统,所以我仍然需要包括一些在瑞典名字中常见的奇怪字符。)

问题是,这会使它输入的每一个字符串都失败。我的猜测是正则表达式没有正确终止,如果字符串结尾失败。但我不明白为什么

因此,我的正则表达式如下所示——我在示例中尝试了两个正则表达式字符串:

    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);
    }
有人要吗

注意:我通过在正则表达式检查之前拆分字符串来解决系统中的问题,这样我就不必处理空白,但我很好奇正则表达式为什么不工作。

C#正则表达式不应该使用“/”分隔符,所以应该使用以下语法:

Regex regex = new Regex(@"^[a-zåäöÅÄÖáéóúýíüÁÉÓÚÝÍÜ\-\.]+([---\s][a-zåäöÅÄÖáéóúýíüÁÉÓÚÝÍÜ\-\.]+)+$",
                        RegexOptions.IgnoreCase);
[a-zåä޸ýýÁÓÚáÜ\-\.]

那你就永远不会有比约恩或乌卡斯了?考虑<代码> [\W-] ,然后让正则表达式考虑Unicode定义为alpha数值?代码>\w也将与[0-9]匹配,但您始终可以对照第二个正则表达式中的那些进行检查

[-\s]


说什么?那么
[\s-]

他们实际上不能使用它们。这基本上是一个sed/perl/Javascript的东西,一般来说与正则表达式无关。或者在其他实现中。我会。。。实际上我曾经试过,但最后没有包括RegexOptions.IgnoreCase。谢谢你根本不应该这样做。当你的第一个法国移民在他/她的名字中出现一个字母时会发生什么?或者别的什么。我有一个奇怪的名字,每次都不能输入我的名字,这很糟糕。最后是客户的电话。不过我同意你的看法。毕竟,当试图保持数据库不受奇怪字符的影响时,这是一件相当复杂的事情。(尤其是在没有真正的政策的情况下。)