子字符串上的字母数字正则表达式
本文关键字:数字 正则表达式 字符串 | 更新日期: 2023-09-27 18:22:12
我知道regex和子字符串在这里是一个常见的问题,但我似乎无法将我所读到的内容与实际应用程序相关联。
我想做的事:
取一个字符串,查看字符串的最后16个字符,并确定其字母数字。以下是我的想法。
if (Regex.IsMatch(STRINGTOCHECK.ToLower().Substring(16), @"^[a-zA-Z0-9]*$"))
请求
一些代码向我展示了完成的正确方法
或者指出我的代码在哪里是错误的
等等。
感谢所有的帮助!
您需要确保最后16个字符是字母数字吗?只需使用以下正则表达式:
[a-zA-Z0-9]{16}$
现在的问题是,.Substring(16)
将返回字符串中最后16个字符之后的所有字符(包括位置16-,而不是)。更重要的是,你已经不区分大小写了,所以:
if(Regex.IsMatch(STRINGTOCHECK, @"[a-zA-Z0-9]{16}$"))
最后的$
锚点确保最后16个字符匹配。
Substring
的参数是开始的索引。
因此,要获得最后16个字符的子字符串,需要从字符串的长度中减去16。
string last16 = STRINGTOCHECK.Substring(STRINGTOCHECK.Length - 16);
if(Regex.IsMatch(last16, @"^[a-zA-Z0-9]*$")
{
}