【问题标题】:Regex Visual Studio One Specific Character正则表达式 Visual Studio 一个特定字符
【发布时间】:2017-09-08 23:38:59
【问题描述】:

我正在尝试验证 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;
}

【问题讨论】:

    标签: regex visual-studio validation asp.net-mvc-3


    【解决方案1】:

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

    @"^\:|m|M|f|F|$"
    

    | 符号表示布尔值OR。因为您没有任何括号来对正则表达式的部分进行分组,所以^ 仅与\: 一起使用,而$ 则单独使用。因此,您的正则表达式匹配以下任何一项:

    • 字符串的开头 (^) 加上 :
    • mM
    • fF
    • 字符串的结尾 ($)。

    每个字符串都有一个结尾,所以每个字符串都匹配。

    正确的正则表达式是:

    @"^[mMfF]$"
    

    这匹配字符串的开头 (^),紧接着是 mMfF 之一,然后是字符串的结尾 ($) .

    【讨论】:

    • 完美。谢谢你。时间到期后将标记为正确。
    猜你喜欢
    • 2014-02-08
    • 1970-01-01
    • 2014-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-30
    • 1970-01-01
    相关资源
    最近更新 更多