子字符串上的字母数字正则表达式

本文关键字:数字 正则表达式 字符串 | 更新日期: 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]*$")
{
}