正则表达式任何字符只要字符相同[重复]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

我有一个字符串代表卡片中的卡片,即7c9hQsKsAs

是否可以使用正则表达式来指定。* x。* x。* x。* x。* x其中x指定任何字符(c / h / d / s),只要该字符在整个字符中是相同的字符?这将用于确定是否存在刷新。

这将用于确定给定的牌是否制作特定的扑克牌。我已经考虑按价值排序并且适合但是我仍然需要指定所有套装字符是相同的(即价值和套装排序TcJcQcKcAd将是皇家同花顺)。

regex
1个回答
1
投票

这取决于你正在使用的正则表达式的风格,但如果它支持反向引用,那么是:

.*(\w).*\1.*\1.*\1.*\1.*

火柴...

123c234c345c456c567c678

用“c”作为第一个参考。 \1说匹配第一个被捕获的组。

但是:Kua zxsw指出

即使每个字符(1,2,3,4,5,6,7,8和c),给定整个表达式,捕获的组仅匹配“c”,因为它是唯一重复5次的字符。

您可能需要更具体的内容,例如:

https://regex101.com/r/Ia9Zg0/1

这使用.+([chds]).+\1.+\1.+\1.+\1 (1或更多)而不是+(0或更多)因为你在每个套装字符之前需要一个rank(值)字符。 *(0或更多)会使它成为可选项。

但是:Kua zxsw指出

帮助:*

© www.soinside.com 2019 - 2024. All rights reserved.