我需要一个与此模式匹配的正则表达式(大小写无关紧要):
066B-E77B-CE41-4279
4组字母或数字每组4个字符,每组之间用连字符。
非常感谢任何帮助。
答案 0 :(得分:6)
^(?:\w{4}-){3}\w{4}$
说明:
^ # must match beginning of string
(?: # make a non-capturing group (for duplicating entry)
\w{4} # a-z, A-Z, 0-9 or _ matching 4 times
- # hyphen
){3} # this group matches 3 times
\w{4} # 4 more of the letters numbers or underscore
$ # must match end of string
这是我最好的选择。然后,您可以使用Regex Match (static)。
P.S。有关正则表达式的更多信息,请参见here。
P.P.S。如果您不想匹配下划线,则上面的\w
可以用[a-zA-Z0-9]
替换(两次)(称为匹配小写和大写字母和数字的类)。 e.g。
^(?:[a-zA-Z0-9]{4}-){3}[a-zA-Z0-9]{4}$
答案 1 :(得分:2)
尝试:
[A-Za-z0-9]{4}\-[A-Za-z0-9]{4}\-[A-Za-z0-9]{4}\-[A-Za-z0-9]{4}
答案 2 :(得分:0)
有了这么少的数据样本,要确定你真正想要的东西并不容易。
我将假设该字符串中的所有字符都是十六进制数字,这就是您需要搜索的内容。
在这种情况下,你需要一个像这样的正则表达式:
^[a-f0-9]-[a-f0-9]-[a-f0-9]-[a-f0-9]$
如果他们可以任何字母,请将f
替换为z
s。
哦,并使用myRE.IgnoreCase = True
使其不区分大小写。
如果您需要有关正则表达式的进一步建议,我建议http://www.regular-expressions.info/作为好站点。他们甚至有VB.net-specific page。
答案 3 :(得分:0)
假设你的例子:
此模式将匹配:
^[\dA-F]{4}-[\dA-F]{4}-[\dA-F]{4}-[\dA-F]{4}$
请注意^
和$
匹配字符串的开头和结尾,如果要匹配整个字符串而不检查模式是否出现在字符串中,这很重要。
您还可以使用模式中的重复:
^(?:[\dA-F]{4}-){3}[\dA-F]{4}$