我正在尝试使用值#####-#####-#####-#####-#####
这是我创建的正则表达式
[A-Z0-9]{5}-[A-Z0-9]{5}-[A-Z0-9]{5}-[A-Z0-9]{5}-[A-Z0-9]{5}
由于某种原因它只是不起作用。
答案 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}$