C# 以下字符串的正则表达式是什么?如果数字滚动,表达式是否会更改?

C# 以下字符串的正则表达式是什么?如果数字滚动,表达式是否会更改?,c#,regex,C#,Regex,以下字符串的正则表达式是什么 56AAA71064D6 56AAA7105A25 如果数字滚动,正则表达式会改变吗?我的意思是,上面的数字恰好包含十六进制值,我不知道当它达到F时,值是如何变化的。以第一个数字为例:56AAA71064D6,如果它达到 56AAA71064F6然后下面的一个将成为56AAA7106406,这将创建一个不同的正则表达式,因为在允许字母的地方,现在它们是数字,所以这会使正则表达式更加困难。建议 制造商将输入一系列序列号。问题在于,不同的制造商对序列号有不同的格式(有些

以下字符串的正则表达式是什么

56AAA71064D6

56AAA7105A25

如果数字滚动,正则表达式会改变吗?我的意思是,上面的数字恰好包含十六进制值,我不知道当它达到F时,值是如何变化的。以第一个数字为例:
56AAA71064D6
,如果它达到
56AAA71064F6
然后下面的一个将成为
56AAA7106406
,这将创建一个不同的正则表达式,因为在允许字母的地方,现在它们是数字,所以这会使正则表达式更加困难。建议

制造商将输入一系列序列号。问题在于,不同的制造商对序列号有不同的格式(有些只是数字,有些是字母数字,有些包含破折号之类的额外字符,有些包含十六进制值,这使得它更加困难,因为我不知道如何滚动到下一个序列号)。滚动问题是最大的问题,因为序列号是按5A1B-6F12这样的范围输入的,在我看来,在不知道如何滚动的情况下,将它们存储在数据库中并不容易。我本来可以让用户选择输入模式(表达式)并将其存储在数据库中,但是如果一个或多个字符从数字变为字母,或者反之亦然,则正则表达式对于某些序列号不再有效


另外,我上面给出的例子只有一个案例。有许多序列号包含不同的表达式。

没有一个正则表达式是匹配这两个字符串的“唯一”表达式。相反,有无限多的人会这样做。以下是两个位于频谱两端的选项:

(56AAA71064D6)|(56AAA7105A25)

.*
第一个将只匹配这两个字符串。第二个可以匹配任何东西。两者都满足您给出的所有标准


现在,如果您指定更多的标准,那么我们将能够对正则表达式提供更合理的概念,这将推动其他问题的答案。(目前,唯一有意义的答案是“这取决于您使用的正则表达式。”)

没有一个正则表达式是匹配这两个字符串的“唯一”表达式。相反,有无限多的人会这样做。以下是两个位于频谱两端的选项:

(56AAA71064D6)|(56AAA7105A25)

.*
第一个将只匹配这两个字符串。第二个可以匹配任何东西。两者都满足您给出的所有标准


现在,如果您指定更多的标准,那么我们将能够对正则表达式提供更合理的概念,这将推动其他问题的答案。(目前,唯一有意义的答案是“这取决于您使用的正则表达式。”)

我认为您可以用12个字符的方式完成。这将搜索一个12个字符的短语,其中每个字符必须是大写(a或B或C或D或E或F或1或2或3或4或5或6或7或8或9或0)

[A-F0-9]{12}

如果你想包括破折号的可能性,那么就这样做

[A-F0-9\-]{12}

或者,您希望包含破折号加上12个字符的可能性,然后执行此操作。但是,这将挑选出任何符合标准的12-15个字符的项目

[A-F0-9\-]{12,15}

或者如果它被空间所包围(aaaaahh…剥离我的空间也是如此!!!)

[A-F0-9\-]{12}

或者如果它被标签包围


\t[A-F0-9\-]{12}\t

我想你可以用12个字符这样做。这将搜索一个12个字符的短语,其中每个字符必须是大写(a或B或C或D或E或F或1或2或3或4或5或6或7或8或9或0)

[A-F0-9]{12}

如果你想包括破折号的可能性,那么就这样做

[A-F0-9\-]{12}

或者,您希望包含破折号加上12个字符的可能性,然后执行此操作。但是,这将挑选出任何符合标准的12-15个字符的项目

[A-F0-9\-]{12,15}

或者如果它被空间所包围(aaaaahh…剥离我的空间也是如此!!!)

[A-F0-9\-]{12}

或者如果它被标签包围


\t[A-F0-9\-]{12}\t

这匹配一个包含12个hexa的字符串

[0-9A-F]{12}

这将匹配包含12个十六进制的字符串

[0-9A-F]{12}

听起来你在描述一个12位的十六进制数:

^[A-F0-9]{12}$

听起来你在描述一个12位的十六进制数:

^[A-F0-9]{12}$

假设这些都是12位的十六进制数,看起来是这样,下面的正则表达式应该可以工作:

[0-9A-Fa-f]{12}
这里我用一个字符类来表示我想要任何数字,或a-F,或a-F。作为奖励,我允许使用小写字母;如果你不想要这些,就把它们从正则表达式中去掉


正如Jon Skeet和其他人所说,您确实没有提供足够的信息,因此,如果您不喜欢这个答案,请理解我正在尽我所能利用您提供的信息。

假设这些都是12位十六进制数字,看起来是这样,下面的正则表达式应该可以工作:

[0-9A-Fa-f]{12}
这里我用一个字符类来表示我想要任何数字,或a-F,或a-F。作为奖励,我允许使用小写字母;如果你不想要这些,就把它们从正则表达式中去掉

正如Jon Skeet和其他人所说,您确实没有提供足够的信息,因此,如果您不喜欢这个答案,请理解我正在尽我所能地利用您提供的信息。

那么,这一点如何:

[0-9A-F]{12}
那么,这个呢:

[0-9A-F]{12}
没有这样的事