【问题标题】:C# Regex won't find the matches [duplicate]C#正则表达式找不到匹配项[重复]
【发布时间】:2017-10-11 21:03:17
【问题描述】:

我正在尝试检测我的字符串是否包含字母(a-z 和 A-Z),我从this 帖子中获得了答案。但并非所有字符串都按预期工作,以 8+a 为例:

string expression = "8+a";
            if (Regex.IsMatch(expression, @"^[a-zA-Z]+$") == true)
                true;
            else
                false;

这将返回假,假设为真。我如何使这个返回为真。谢谢!

【问题讨论】:

  • 移除锚点。或者更好的是,如果您只需要检查字符串是否包含单个字母,请不要使用正则表达式,请使用 if (s.Any(char.IsLetter)) {...}
  • ^ 锚点如 ^$
  • 您的正则表达式检查它是否包含字母。

标签: c# regex


【解决方案1】:

^ 将您的正则表达式锚定到字符串的开头。

$ 锚定到字符串的末尾。

删除这些,您的正则表达式将起作用。

此外,无需将bool 值与true 进行比较,因为它是自动完成的。

【讨论】:

    猜你喜欢
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-26
    • 2012-10-31
    相关资源
    最近更新 更多