gpt4 book ai didi

regex - 使用正则表达式由 4 个不同字母组成的单词?

转载 作者:行者123 更新时间:2023-12-04 15:34:20 25 4
gpt4 key购买 nike

例如,重新评估将匹配。它正好包含 4 不同的字符:'r'、'e'、'a' 和 's'。

我的尝试是:/^([a-z])([a-z])([a-z])([a-z])(\1|\2|\3|\4)(\1|\2|\3|\4)(\1|\2|\3|\4)$/(添加尽可能多的 (\1|\2|\3|\4) 以匹配单词的长度)

但是,这最多只能匹配 4 个不同的字母,并且仅当它们是前 4 个字符时。

有没有更好的解决办法?

最佳答案

绝对有效 -
这应该会导致只包含 4 个不同字符的对齐
长度 >= 4 的字符串。

 #  ^(?=.*(.).*(?!\1)(.).*(?!\1|\2)(.).*(?!\1|\2|\3)(.))(?:\1|\2|\3|\4)+$

^
(?=
.*
( . )
.*
(?! \1 )
( . )
.*
(?! \1 | \2 )
( . )
.*
(?! \1 | \2 | \3 )
( . )
)
(?: \1 | \2 | \3 | \4 )+
$

Perl 测试用例:
if ("upepipipeu" =~ /^(?=.*(.).*(?!\1)(.).*(?!\1|\2)(.).*(?!\1|\2|\3)(.))(?:\1|\2|\3|\4)+$/)
{
print "unique chars: '$1' '$2' '$3' '$4'\n";
print "matched: '$&'\n";
}

输出 >>
unique chars: 'i'  'p'  'e'  'u'
matched: 'upepipipeu'

@aliteralmind 的测试用例:
@Ary = ("aabbccdd", "dictionary", "reassess", "aaaa");

for( @Ary )
{
if ("$_" =~ /^(?=.*(.).*(?!\1)(.).*(?!\1|\2)(.).*(?!\1|\2|\3)(.))(?:\1|\2|\3|\4)+$/)
{
print "unique chars: '$1' '$2' '$3' '$4'\n";
print "matched: '$&'\n\n";
}
else
{
print "Failed-> '$_'\n\n";
}
}

输出 >>
unique chars: 'a'  'b'  'c'  'd'
matched: 'aabbccdd'

Failed-> 'dictionary'

unique chars: 'r' 'a' 'e' 's'
matched: 'reassess'

Failed-> 'aaaa'

关于regex - 使用正则表达式由 4 个不同字母组成的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22152874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com