regex - 正则表达式任何字符,只要字符相同
问题描述
我有一个字符串代表一副牌中的牌,即 7c9hQsKsAs
是否可以使用正则表达式来指定 .*x.*x.*x.*x.*x ,其中 x 将指定任何字符(c/h/d/s),只要该字符始终是相同的字符?这将用于确定是否存在冲洗。
这将用于确定给定的牌是否构成特定的扑克手。我考虑过按价值和花色排序,但是我仍然需要指定所有花色字符都是相同的(即价值和花色排序的 TcJcQcKcAd 将是皇家同花顺)。
解决方案
这取决于您使用的正则表达式的风格,但如果它支持反向引用,那么是的:
.*(\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 或更多) 将使其成为可选。*
推荐阅读
- javascript - JS - 呈现所有评论
- javascript - element.style 加载页面时加载,但它应该在 window.onscroll 上运行
- css - 将根元素字体大小设置为百分比时,在 Chrome 中使用 rem 的 textarea 字体大小出现意外
- flutter - ¿ 如何在 Flutter 中迭代快照?
- python - 如何将微服务的响应转发回客户端?
- java - 处理对填充仓库货架的并发请求 | “库存最后一个项目问题”
- linux-kernel - 如何在adi-linux内核中配置Bridge兼容mac80211?
- python - 有没有办法手动找到最佳拟合线(线回归)的斜率和 y 截距?
- php - 使用 MySQL 打印表返回空白
- rest - 不同的响应格式取决于 get 参数