正则表达式的产品密钥

时间:2010-03-11 20:15:50

标签: regex

我正在尝试使用值#####-#####-#####-#####-#####

显示所有产品密钥的正则表达式

这是我创建的正则表达式

[A-Z0-9]{5}-[A-Z0-9]{5}-[A-Z0-9]{5}-[A-Z0-9]{5}-[A-Z0-9]{5}

由于某种原因它只是不起作用。

6 个答案:

答案 0 :(得分:2)

您打算使用哪种正则表达式工具? grep,egrep,sed,perl等?

此外,您可能希望允许使用小写字母:

使用egrep和cygwin,这有效: '^([A-Za-z0-9]{5}-){4}[A-Za-z0-9]{5}$'

但正如Hyman指出的那样,{}在每个正则表达集中都无效(因此我使用egrep,而不是grep)。

答案 1 :(得分:1)

你应该锚定模式:

/\A[A-Z0-9]{5}-[A-Z0-9]{5}-[A-Z0-9]{5}-[A-Z0-9]{5}-[A-Z0-9]{5}\z/

答案 2 :(得分:1)

这个在Expresso中为我工作:

  

([A-ZA-Z0-9] {5} - [A-ZA-Z0-9] {5} - [A-ZA-Z0-9] {5} - [A-ZA-z0- 9] {5} - [A-ZA-Z0-9] {5})

答案 3 :(得分:0)

(([a-z0-9]{3,8}-){1,4}[a-z0-9]{3,8}(\s|,)|([A-Z0-9]{3,8}-){1,4}[A-Z0-9]{3,8}(\s|,))

那个适合我。所有字符小写或所有字符大写。路径必须是3到8个字符/位长,并用减号分隔。第一个模式将进行1到4次重复,具有相同结构的最后一个模式最后不得有负数。完整的键后跟一个逗号或任何空格,包括newLine,tab,space,nothing。

[a-z0-9]{3,8}- =所有较低的字符+所有数字3到8次,然后是减号

([a-z0-9]{3,8}-){1,4} =超过规则1至4次

[A-Z0-9]{3,8}- =所有高位字符+所有数字3到8次,然后是负数

| =或 - > onyl其中一条规则必须是真的

(\s|,) =被任何内容,空格,制表符或newLine或逗号所覆盖

如果你知道,只有大写字符,你可以删除这个较低字符的规则,所以你离开了:

([A-Z0-9?]{3,8}-){1,4}[A-Z0-9?]{3,8}(\s|,)

答案 4 :(得分:0)

这是我在这里的第一篇文章。

假设您需要进行验证,该验证需要验证产品密钥,就像这样-

XXXX-XXXXX-XXXXXX-XXXX-XXXXX ....依此类推,直到第n个限制,其中“ n”是块数(此处XXXX是一个块),每个块之间用连字符分隔,并且每个块只能包含大写字母和数字,这可以解决。

^[A-Z0-9]{4,8}(-[A-Z0-9]{4,8}){3,8}$

(此处每个块最多可以包含4个至8个字符,最少应包含3个块,最多8个块。)这对于诸如SAP BODS产品密钥验证之类的产品密钥验证是理想的。

随时添加您的建议或评论。

快乐编码, Prithwi PC

答案 5 :(得分:0)

在C#中,我使用了它,并且效果很好。就我而言,我正在检查仅包含产品密钥的字符串。

^(.{5}-){4}.{5}$