首页 > 解决方案 > C#检查输入是否在A的模式中

问题描述

可能的输入:

1) ASDF-123-ZXCV-456

2) YUIO-123-BNNM-987

3) QWER-123-LKJH-111

4) A1234

5) A456

我需要找到与 Axxx(integer) 模式匹配的输入,在这种情况下,应该返回 4) 或 5)。

我尝试了 startWith("A"),但 1) 仍然返回,因为它也以 A 开头,但我不希望那样

提前致谢

标签: c#

解决方案


扩展@aleks-andreev 的评论,您可以尝试:

    bool IsLetterAThenNumericPattern(string candidate)
    {
        return System.Text.RegularExpressions.Regex.IsMatch(candidate, @"^A\d+$");
    }

对于以下情况,这将返回true

  • A1
  • A123
  • A1234567890101

对于以下情况,则为 false:

  • B1
  • 一个
  • A12345A
  • A123-456

正则表达式分解如下:

  • ^从字符串的开头开始
  • A仅匹配字母 A
  • \d+匹配一位或多位数字
  • $字符串的结尾。

总之,此正则表达式仅在字符串以字母 A 开头并且后跟 >=1 位数字时才返回 true,仅此而已。


推荐阅读