php – 用于确定字符串特定特征的正则表达式(即扑克手)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 用于确定字符串特定特征的正则表达式(即扑克手),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1061字,纯文字阅读大概需要2分钟。
内容图文
![php – 用于确定字符串特定特征的正则表达式(即扑克手)](/upload/InfoBanner/zyjiaocheng/728/51ea023d70a742ddb507492963e8e17e.jpg)
我有一个“AsKcQsJd”形式的字符串代表一副扑克牌中的4张牌.大写值代表卡片值(在本例中为Ace,King,Queen和Jack),小写值代表套装(在这种情况下,是铲子,棍棒,铲子,钻石).
说我有另一个值告诉我我正在寻找什么样的西装.所以在这种情况下,我有:
$hand =’AsKcQsJd’;
$suit =’s’;
如何编写一个正则表达式来检查手中是否有一个Ace,然后是套装,所以在这种情况下,“As”以及任何其他具有该套装的卡?或者在“扑克术语”中,我试图确定手牌是否具有’ace high flush draw’来定义为$suit.
为了进一步解释,我需要检查是否存在以下两张卡的任意组合:
AsKs,AsQs,AsJs,AsTs,As9s,As8s,As7s,As6s,As5s,As4s,As3s,As2s
随着复杂性的增加,这些卡可能出现在手中的任何地方.例如,字符串可以在前面有As,在结尾有Ks.这就是为什么我认为正则表达式是确定两者是否在字符串中共存的最佳方法.
解决方法:
您可以使用两个前瞻,一个用于As,一个用于[^ A] s,如下所示:
(?=.*As)(?=.*[^A]s)
https://regex101.com/r/8hkWTv/1
$suit = 's';
$re = '/(?=.*A' . $suit . ')(?=.*[^A]' . $suit . ')/';
print($re); // /(?=.*As)(?=.*[^A]s)/
print(preg_match($re, 'AsKcQsJd')); // 1
print(preg_match($re, 'AdKcQsJd')); // 0
print(preg_match($re, 'KsKcQsJd')); // 0
内容总结
以上是互联网集市为您收集整理的php – 用于确定字符串特定特征的正则表达式(即扑克手)全部内容,希望文章能够帮你解决php – 用于确定字符串特定特征的正则表达式(即扑克手)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。