Powershell正则表达式匹配各种序列号

时间:2020-08-05 01:55:27

标签: regex powershell numbers match

我正在尝试创建与各种设备的序列号匹配的正则表达式。 匹配项由字母和数字组成,长度至少为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

2 个答案:

答案 0 :(得分:3)

您可以使用以下内容:

$Serial -match '[A-Z0-9]{6,}'

[]表示字符类。内部有一系列字符,AZ09{6,}匹配当前匹配的6倍或更多(0-9或A-Z)。通常,A-Z在正则表达式中区分大小写,而-match运算符则不区分大小写。如果只需要大写字母匹配,我建议更改为-cmatch(区分大小写的变体)。

答案 1 :(得分:0)

如果您不担心区分大小写或下划线,则可以使用更短的版本

$serial -match '[\w]{6,}'

如果您需要排除的字符串中有下划线,则不合适。

此外,我建议使用https://regex101.com/之类的网站来测试您的正则表达式。您可以实时查看结果,并且页面上有有用的语法指南。

相关问题