Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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
Regex-visualstudio一个特定字符_Regex_Visual Studio_Validation_Asp.net Mvc 3 - Fatal编程技术网

Regex-visualstudio一个特定字符

Regex-visualstudio一个特定字符,regex,visual-studio,validation,asp.net-mvc-3,Regex,Visual Studio,Validation,Asp.net Mvc 3,我正在尝试验证Visual Studio中的文本框是否为字符M或F。我还以类似的方式使用正则表达式集进行了一些其他验证,这些验证都正常工作。然而,有了这个,它仍然允许我使用文本框中的任何字母。这个代码有什么问题 public static bool IsGender(string gender) { bool validGender = true; string _genderRegEx = @"^\:|m|M|f|F|$"; if ((!Regex.Match(gend

我正在尝试验证Visual Studio中的文本框是否为字符M或F。我还以类似的方式使用正则表达式集进行了一些其他验证,这些验证都正常工作。然而,有了这个,它仍然允许我使用文本框中的任何字母。这个代码有什么问题

public static bool IsGender(string gender)
{
    bool validGender = true;
    string _genderRegEx = @"^\:|m|M|f|F|$";
    if ((!Regex.Match(gender, _genderRegEx).Success))
    {
        MessageBox.Show("Gender must be either M or F.");
        validGender = false;
    }
    return validGender;
}

你的正则表达式不正确。你有:

@"^\:|m|M|f|F|$"
|
符号表示布尔
。因为您没有任何括号来对正则表达式的各个部分进行分组,
^
只与
\:
一起使用,
$
本身就是。因此,您的正则表达式匹配以下任意一项:

  • 字符串的开头(
    ^
    )加上
  • m
    m
  • f
    f
  • 字符串的结尾(
    $
    )。
每个字符串都有一个结尾,因此每个字符串都匹配

正确的正则表达式应该是:

@"^[mMfF]$"

这与字符串的开头(
^
)相匹配,后跟
m
m
f
f
中的一个,后跟字符串的结尾(
$
)。

您的正则表达式不正确。你有:

@"^\:|m|M|f|F|$"
|
符号表示布尔
。因为您没有任何括号来对正则表达式的各个部分进行分组,
^
只与
\:
一起使用,
$
本身就是。因此,您的正则表达式匹配以下任意一项:

  • 字符串的开头(
    ^
    )加上
  • m
    m
  • f
    f
  • 字符串的结尾(
    $
    )。
每个字符串都有一个结尾,因此每个字符串都匹配

正确的正则表达式应该是:

@"^[mMfF]$"

这与字符串的开头(
^
)相匹配,紧跟着是
m
m
f
f
中的一个,然后是字符串的结尾(
$
)。非常感谢。将在时间到期时标记为正确。完美。非常感谢。将在时间到期时标记为正确。