【发布时间】:2018-09-06 22:53:53
【问题描述】:
我需要正则表达式来匹配长度为 5 的单词,该单词包含 1 个数字 (0-9) 和 4 个小写字母 (a-z),但其中一个字母重复 恰好 两次并且 rest 彼此不同。
正确匹配示例:
aa1bc
2adba
v4alv
错误匹配示例:
aa1bbc => notice that although one letter (a) repeat twice,
other letters are not different from each other (bb)
1aaaa
b3ksl
我使用^(?=.{5}$)[a-z]*(?:\d[a-z]*)(.*(.).*\1){1}$ 来匹配所有包含 1 个数字和 4 个字母的单词,但我不知道如何确保只有一个字母完全重复两次,其余的则不同。
【问题讨论】:
-
为什么一定要正则表达式?
-
你还没有问过这个问题吗?
-
@UnbearableLightness 是关于团体的。现在我想了解具体的群体。
-
@zvone 因为我有递归脚本,它为我提供了所有 1 位数字和 4 个字母的单词组合,我想提取这个特定的模式。我认为它可以比编写一个可以做到这一点的脚本更快。
-
我看不出正则表达式会比执行此操作的函数更快。它会更快、更易读、更容易实现。