带有字母、数字、可选特殊字符的正则表达式单词,顺序不限



我需要挑选出至少包含6个字母和/或数字(组合,而不是每个(的整个单词,以及可选的"特殊"字符。所有顺序,如A1234512345A1-2-345-A12A45B等等。

这是 VBA,因此无法访问后面。特殊字符将永远"在"匹配项中,而不是开始或结束(例如,永远不会-1234-A-(。

我认为这就是您要查找的:

[a-z0-9/-]{6,}

这将以任何顺序匹配a to z0 to 9或至少 6-/。 请注意,-位于字符类的末尾。 你可以把它放在中间,但随后需要逃避它。 此外,如果您的分隔符也/,则需要对/进行转义

更新

正如Wiktor所指出的,这也将捕获可能不是您想要的------。 我建议简单地清除所有可选字符,然后运行上面的正则表达式。 我会删除我的答案,因为我没有提供确切的要求,但这将是一个可行的解决方案,因此它可能有价值。

您可以执行正则表达式替换以删除所有非字母/数字,然后检查结果字符串的长度是否为 6 或更多:

Dim input As String = "A-1234-B"
Dim pattern As String = "[^A-Za-z0-9]+"
Dim replacement As String = ""
Dim rgx As New Regex(pattern)
Dim result As String = rgx.Replace(input, replacement)
Console.WriteLine(result.Length)   ' 6

演示

最新更新