我需要将字符串与特定字母匹配,但不应复制任何字母。例如,[AEIOU]不应该匹配' AAEIOU'或者' AAEEIOU'。它应该只匹配AEIOU'并且字母的顺序无关紧要。我尝试使用精确的量词与{}但是没有用。
答案 0 :(得分:2)
您可以使用否定前瞻:
您放在括号中的任何内容都将是您选择的字符子集。
>>> import re
>>> tests = ['AAEIOU', 'AAEEIOU', 'AEIOU']
>>> for test in tests:
.. print(re.match(r'^(?!.*(.).*\1)[AEIOU]+$', test))
None
None
<_sre.SRE_Match object; span=(0, 5), match='AEIOU'>
答案 1 :(得分:0)
这可能效率低下,但也许使用计数器?为每个构建一个计数器,然后检查它们是否相等?
答案 2 :(得分:0)
不使用正则表达式,但您可以使用python字符串方法计算字符串中的字符数。这可用于开发过滤功能,有效地,可以获得您想要的结果。
AEIOU
结果只是符合条件的一场比赛,
app
这不是最高效的选项,但简单易读。