gpt4 book ai didi

ruby - 检查字符串是否包含来自特定集合的唯一字符

转载 作者:太空宇宙 更新时间:2023-11-03 18:22:54 25 4
gpt4 key购买 nike

我想要一个字符串由集合 [a,i,b,w] 中的唯一字符组成。一个字符串应该只包含至少 1 个和最多 4 个来自这个集合的字符,但是字符不能重复并且允许任何排列.因此,例如 aa 或 bwaw 是不允许的。我可以使用正则表达式来测试它还是我需要自己在代码中解析它?

谢谢

最佳答案

对于一组(数学)字符(同一字符在一组中不能出现两次,与允许多次出现的多重集相反),您可以基于以下模板构建正则表达式:

^(?!.*(.).*\1)[<set_of_characters>]{1,<cardinality_of_character_set>}$

例如,在您的情况下:

^(?!.*(.).*\1)[abiw]{1,4}$

(?!.*(.).*\1)零宽度负向预测,检查是否可以在前面的文本 .*(.).*\1。这使用上述假设,即字符不得在输入字符串中出现两次。

[abiw]{1,4} 只是任何字符 [abiw] 出现 1 到 4 次。由于我们已经检查了字符串不包含任何重复字符,上面有否定的前瞻性,这部分只是检查字符串是否包含指定集合中的字符。

关于ruby - 检查字符串是否包含来自特定集合的唯一字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15133932/

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