我正在尝试创建与各种设备的序列号匹配的正则表达式。
匹配项由字母和数字组成,长度至少为6个字符。
我对regex感到很糟糕,我只能使用$Serial -match '\d\D'
,但这无法验证长度。我已经尝试过'\d{0-6}\D{0-6}'
,但没有找到匹配项。
任何人都可以为序列号提供适当的正则表达式。这些来自不同的设备类型,并且所有格式都略有不同。这是示例列表:
1VWPGF1
22P342Y4
2M251434B9
2TK95004x4
5CG934322D
8CG4322TVF
BRJ9323XR5
CND8432NVJ
MXL64322Q4
MXL64324MV
PF1CZ0EF
USE147SX0Y
USH7432L1W
答案 0 :(得分:3)
您可以使用以下内容:
$Serial -match '[A-Z0-9]{6,}'
[]
表示字符类。内部有一系列字符,A
至Z
和0
至9
。 {6,}
匹配当前匹配的6倍或更多(0-9或A-Z)。通常,A-Z
在正则表达式中区分大小写,而-match
运算符则不区分大小写。如果只需要大写字母匹配,我建议更改为-cmatch
(区分大小写的变体)。
答案 1 :(得分:0)
如果您不担心区分大小写或下划线,则可以使用更短的版本
$serial -match '[\w]{6,}'
如果您需要排除的字符串中有下划线,则不合适。
此外,我建议使用https://regex101.com/之类的网站来测试您的正则表达式。您可以实时查看结果,并且页面上有有用的语法指南。