【发布时间】:2021-07-29 10:33:06
【问题描述】:
我想验证一个字符串
AB000A1B
BC222B2P
条件:
- 字符串长度应大于 7
- 前两个字符必须是字母
- 索引 2,3,4 处的字符应为数值
// 0 based index - 字符串的最后一个字符应该是字母(仅限 B、P、J 中的任何一个)
我使用了以下代码,但它只能将前两个字符验证为字母,然后将 3 个字符净为数值,如何验证字符串的最后一个字符是否为 B、P、J 中的任何一个或如何我可以在所列条件下实现改进的模式吗?
if (inputString.Length > 7)
{
string pattern = "^[a-zA-Z]{2}[0-9]{2}[B|P|J]$";
Regex rgx = new Regex(pattern);
if (rgx.IsMatch(inputString))
{
}
}
【问题讨论】:
-
您指定了三个数字,但在您的模式中有
{2}并且您在它们和最后一个字符之间没有任何内容,例如.*匹配之间的字符。像regexstorm.net/tester 这样的在线正则表达式测试人员非常适合制作正则表达式原型。 -
如果字符串长度为 10,前 2 个字符是 alpha,后 3 个是数字,最后一个字符是 B、P 或 J,这是否意味着其他字符可以是任何字符?
-
这能回答你的问题吗? regex match last character