我们有一个用例,我们需要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-z
、A-F
或 之类的符号来表示5-9
。任何其他字符都可以简单地放入集合中:
[abcdefgxyz]
将只匹配那些指定的字母!
集合和范围可以组合
[CF-SX-Z]
将匹配C
或之间的所有大写字母F
和S
之间X
和Z
。我希望现在变得更清楚
- 1 回答
- 0 关注
- 285 浏览
添加回答
举报
0/150
提交
取消