繁体   English   中英

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

[英]Powershell regex matching various Serial numbers

我正在尝试创建匹配各种设备序列号的正则表达式。 匹配是至少 6 个字符长的字母和数字的组合。 我对正则表达式很糟糕,我所能做的只是$Serial -match '\d\D'但这并不能验证长度。 我试过'\d{0-6}\D{0-6}'但它没有得到匹配。 任何人都可以为序列号提供适当的正则表达式。 这些来自不同的设备类型,并且格式都略有不同。 以下是示例列表:

1VWPGF1
22P342Y4
2M251434B9
2TK95004x4
5CG934322D
8CG4322TVF
BRJ9323XR5
CND8432NVJ
MXL64322Q4
MXL64324MV
PF1CZ0EF
USE147SX0Y
USH7432L1W

您可以使用以下内容:

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

[]表示字符 class。 里面有一系列字符AZ09 {6,}匹配当前匹配的 6 次或更多次(0-9 或 AZ)。 通常AZ在正则表达式中区分大小写,但-match运算符不区分大小写。 如果您只想要大写匹配,我建议更改为-cmatch ,区分大小写的变体。

如果您不担心区分大小写或下划线,这里有一个更短的版本

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

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

另外,我推荐像https://regex101.com/这样的网站来测试你的正则表达式。 您可以实时查看结果,并且页面上有有用的语法指南。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM