regex 包含字母、数字、任意顺序的可选特殊字符的正则表达式单词

qvtsj1bj  于 2023-05-08  发布在  其他
关注(0)|答案(2)|浏览(112)

我需要挑选出包含至少6个字母和/或数字的完整单词(组合,而不是每个),可选的“特殊”字符。所有的顺序都可以,所以A1234512345A1-2-345-A12A45B等等。
这是VBA,因此无法访问后面的内容。特殊字符只会出现在匹配中,而不是开始或结束(例如,永远不会是-1234-A-)。

0sgqnhkj

0sgqnhkj1#

我想这就是你要找的:

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

这将匹配任何顺序a to z0 to 9-/至少为6。注意-位于字符类的末尾。你可以把它放在中间,但你必须摆脱它。此外,如果分隔符也是/,则需要转义/

更新

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

rvpgvaaj

rvpgvaaj2#

你可以执行正则表达式替换来删除所有非字母/数字,然后检查结果字符串的长度是否大于或等于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


∮ ∮ ∮ ∮

相关问题