繁体   English   中英

C#Regex:检查“az”和“AZ”

[英]C# Regex: Checking for “a-z” and “A-Z”

我想检查是否在az或AZ之间的字符中输入了一个字符串。 不知怎的,我的正则表达似乎没有把它拿起来。 它总是返回true。 我不确定为什么,我收集它与我如何编写正则表达式有关。 任何帮助,将不胜感激。

private static bool isValid(String str)
{
    bool valid = false;

    Regex reg = new Regex((@"a-zA-Z+"));

    if (reg.Match(str).Success)
        valid = false;
    else 
        valid  = true;     

     return valid;
}
Regex reg = new Regex("^[a-zA-Z]+$");
  • ^字符串的开头
  • []字符集
  • \\+一次或更多
  • $字符串的结尾

^$需要因为你想要验证所有字符串,而不是字符串的一部分

正确的方法是这样的:

private static bool isValid(String str)
{
    return Regex.IsMatch(str, @"^[a-zA-Z]+$");
}

此代码具有以下好处:

  • 使用静态方法而不是每次都创建一个新实例:静态方法缓存正则表达式
  • 修正了正则表达式。 它现在匹配由一个或多个字符az或AZ组成的任何字符串。 不允许其他字符。
  • 更短更可读。

使用

Regex.IsMatch(@"^[a-zA-Z]+$");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM