正则表达式 – 找到anagrams和sub-anagrams

前端之家收集整理的这篇文章主要介绍了正则表达式 – 找到anagrams和sub-anagrams前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个字符池,我希望使用正则表达式匹配所有字符的字符,这些字符是那些字符的字符或这些字符的子集. @H_403_7@

@H_403_7@示例:给定字符串“ACNE”,正则表达式应该给我这些结果:

@H_403_7@> ACNE [T]
> CENA [T]
> CAN [T]
> CAAN [F]
> CANEN [F]

@H_403_7@我尝试过这个解决方案/ b [痤疮] {1,4} / b但它接受多次重复的单个字符.
我最多只能一次拿走每个字符?

解决方法

“痤疮”这个词的子字谜就是那个词 @H_403_7@

@H_403_7@>仅由字母痤疮组成
>不要超过一次
>不要多次包含c
>不要多于n次
>不要超过一次

@H_403_7@将其编译为正则表达式:

@H_403_7@

^(?!.*a.*a)(?!.*c.*c)(?!.*n.*n)(?!.*e.*e)[acne]*$
@H_403_7@测试:regexpal

@H_403_7@或者,由于“痤疮”不包含任何超过一次的字母,“痤疮”一词的子字谜就是

@H_403_7@>仅由字母痤疮组成
>不要包含任何超过一次的任何字母.

@H_403_7@将其编译为正则表达式:

@H_403_7@

^(?!.*(.).*\1)[acne]*$
@H_403_7@测试:regexpal

@H_403_7@注意:“magmoid”一词的子字谜可以匹配为

@H_403_7@

^(?!.*([agoid]).*\1)(?!(.*m){3})[magoid]*$
@H_403_7@(不要超过一次agoid,并且不要超过两次m)

猜你在找的正则表达式相关文章