我在卡组中有一个表示卡的字符串,即7c9hQsKsAs
是否可以使用Regex指定。* x。* x。* x。* x。* x,其中x可以指定任何字符(c / h / d / s),只要该字符是相同字符始终?这将用于确定是否有冲洗。
这将用于确定给定的纸牌是否构成特定的扑克手。我考虑过按值和西服排序,但是我仍然需要指定所有西服字符都相同(即按值和西服排序的TcJcQcKcAd将是同花顺)。
答案 0 :(得分:1)
这取决于您使用的正则表达式的风格,但是如果它支持反向引用,则可以:
.*(\w).*\1.*\1.*\1.*\1.*
匹配...
123c234c345c456c567c678
以“ c”作为第一个参考。 \1
说要匹配第一个被捕获的组。
演示:https://regex101.com/r/Ia9Zg0/1
即使给定整个表达式,每个字符(1、2、3、4、5、6、7、8和c),捕获的组也只匹配“ c”,因为它是唯一重复5次的组。
您可能想要更具体的内容,例如:
.+([chds]).+\1.+\1.+\1.+\1
这使用 +
(1个或更多)而不是 *
(0个或更多),因为您需要要求每个西装字符之前的排名(值)字符。 *
(0或更大)将使其可选。