正则表达式:检查字符串是否以随机顺序匹配多个子字符串

凯文·克鲁伊森(Kevin Cruijssen):

我有一个始终采用以下模式的字符串:

"AB AB AB AB AB "   // (note the trailing space)

其中A可以是中的任何字符"12345678TJQKA",也B可以是中的任何字符"HSCD"(基本上是52张扑克牌)。

我如何检查此字符串是否为带有正则表达式的Royal Flush?

有些事情我想没有结果(只是用钻石现在)(注:我不知道如何正确使用查找aheads,查找屁股,并查找变通,所以我最有可能做的事情都错了..)

^(?=AD )(?=KD )(?=QD )(?=JD )TD $
^(?=AD .*)(?=KD .*)(?=QD .*)(?=JD .*)TD .*$
^(?=AD )(?=KD )(?=QD )(?=JD )(?=TD )$
^(?=AD .*)(?=KD .*)(?=QD .*)(?=JD .*)(?=TD .*)$
^(?<=AD )(?<=KD )(?<=QD )(?<=JD )(?<=TD )$

因此,我希望正则表达式可以"AD KD QD JD TD "按任何顺序进行匹配(例如包括其反向("TD JD QD KD AD ")或此随机顺序:)"KD TD QD AD JD "最好也有一个捕获组,D这样它对所有四套西装都是统一的。

这是一个在线正则表达式测试仪,其中包含一些测试用例,以防任何人想要摸索。

如果您拥有一个不仅可以与Diamond Royal Flush匹配的正则表达式,而且可以同时适合所有西服(并说明其工作原理),那么效果会更好。(也可以使用其他任何方法来检查Royal Flush而不是regex,但是我仍然想知道如何在regex中完成此操作,因为这是我的主要问题所在。)

塞巴斯蒂安·普罗斯克(Sebastian Proske):

您可以使用regex进行检查,尽管这可能不是最佳方法。

我的回答是假设所有字符串都是正确的条目(以您给定的格式显示5张卡片)。

然后我们可以使用

^(?=.*J(\w))(?=.*Q\1)(?=.*T\1)(?=.*K\1)(?=.*A\1).*$

检查是否是皇家同花顺。我们使用大量的先行检查来检查所需的卡片,并在第一次尝试中将所使用的西装与后向引用重用。我们可以简单地使用\w西装来进行检查,因为卡类型和西装的标识符不会重叠(甚至.应该是可能的)

参见https://regex101.com/r/eR9kQ6/23

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

检查字符串是否与JS中的正则表达式匹配

使用正则表达式检查字符串的开头是否与模式匹配

正则表达式检查字符串是否匹配特定模式

如何检查字符串是否与正则表达式匹配

检查字符串是否与Bash脚本中的正则表达式匹配

检查字符串是否与ruby中的正则表达式匹配的最快方法?

检查字符串是否可能与正则表达式匹配

检查字符串是否匹配特定的正则表达式

检查字符串是否与python中的正则表达式完全匹配

检查字符串的正则表达式以

正则表达式检查字符串是否包含指定字符以外的字符

正则表达式检查字符串中是否重复字符

C中的正则表达式,检查字符串是否包含特定字符

正则表达式-如何检查字符串是否以给定字符开始或结束?

正则表达式检查字符串是否仅由特殊字符组成

用于检查字符串中是否存在一个或多个特殊字符的正则表达式

如何编写正则表达式来检查字符串是否包含特殊字符和多个空格

如何检查字符串是否与node.js中的任何正则表达式数组匹配?

Perl检查字符串是否为有效正则表达式匹配的前缀

检查字符串是否在ruby中以正则表达式开头以匹配“ [NATURAL NUMBER]”

输入元素如何检查字符串是否与pattern属性中指定的正则表达式匹配?

检查字符串是否与 Javascript 中的自定义正则表达式匹配

检查字符串是否满足正则表达式

如何检查字符串是否为正则表达式

正则表达式检查字符串是否仅包含数字

正则表达式检查字符串是否包含年份

正则表达式问题(检查字符串是否有重复)

Python正则表达式检查字符串是否包含方法调用

检查字符串是否为正则表达式的其他方法