为了账号安全,请及时绑定邮箱和手机立即绑定

创建正则表达式以匹配带有字母后跟固定位数的字符串

创建正则表达式以匹配带有字母后跟固定位数的字符串

C#
手掌心 2021-11-07 19:48:14
我们有一个用例,我们需要Uid使用以下约束验证一些用例:在形式lenght 5的UID annnnn其中一个比其它任何字母A,B,D和E。而n是从0到 的任意数字9。所以我创建了新方法,它将验证相同并按预期工作。/// <summary>/// Validate Uid of lenght 5 in form annnnn where ‘a’ is any letter other than A, B, D and E./// </summary>/// <param name="value"></param>/// <returns></returns>private static bool IsValidUid( string value ){    bool returnValue = false;    if (string.IsNullOrEmpty(value) == false && value.Length == 5)    {        char firstChar = value[0];        bool firstCharFailed = false;        switch (firstChar)        {            case 'A':            case 'B':            case 'D':            case 'E':                firstCharFailed = true;                break;        }        if (firstCharFailed == false)        {            string remainingStr = value.Substring(1, 4);            int numb;            if (int.TryParse(remainingStr, out numb) == true)            {                returnValue = true;            }        }    }    return returnValue;}但它可以通过正则表达式有效地完成。因为我不擅长它,所以我需要帮助为我创造一个!提前致谢!!
查看完整描述

1 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

其中“a”是除 A、B、D 和 E 之外的任何字母。

因此,在这种情况下,您需要指定允许的字母集

[a-zF-ZC] => 表示所有字母都在 az 范围内,FZ 应该匹配,C 也应该匹配

'n' 是 0 到 9 之间的任何数字。

\d 匹配一个数字,或者您可以使用 [0-9]

长度为 5 的形式 annnnn

\d{4} 指定应该匹配的前一个字符的数量

最后一件事必须做。您需要指定,它a应该在字符串的开头,并且字符串在第 5 个字符之后结束:

^表示字符串的开始表示字符串
$的结束。

所以结合起来看起来像这样:

string pattern = @"^[a-zF-ZC]\d{4}$

或使用数字范围:

string pattern = @"^[a-zF-ZC][0-9]{4}$

这是正则表达式模式概述以及示例和解释

这是一个站点,您可以在其中测试和试用您的正则表达式模式。摆弄它以了解它。它有助于

编辑:

[...]表示一组将被匹配的字符。范围使用-像 in a-zA-F或 之类的符号来表示5-9。任何其他字符都可以简单地放入集合中:

[abcdefgxyz] 将只匹配那些指定的字母!

集合和范围可以组合

[CF-SX-Z]将匹配C或之间的所有大写字母FS之间XZ。我希望现在变得更清楚


查看完整回答
反对 回复 2021-11-07
  • 1 回答
  • 0 关注
  • 285 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信