gpt4 book ai didi

python - 正则表达式:扑克牌解析器,N 的一种

转载 作者:太空宇宙 更新时间:2023-11-04 00:54:25 24 4
gpt4 key购买 nike

我正在尝试编写一个 regex 来解析一手牌:例如:

4C 4H 6H 4D AH
4H 6H 4D 4C AH
4C 6H 4D AH 4H

我想要通用正则表达式来解析下面的每一行,如果它包含三次 4 则返回 true。到目前为止,我从我之前关于 sequence of repetition 的问题中得到了什么并且不考虑可以洗牌的事实。

到目前为止我尝试的是: 4\w((?:\w{2})?(?: 4\w)){2} - 它涵盖了几种情况,但不是全部。请帮我修正这个表达式。


编辑:

def check_card_series(hand, range):
# 4\w((?: \w{2})?(?: 4\w)){2}
regexp = "%s\w((?: \w{2})?(?: %s\w)){%d}"
result = False
for card in cards:
result = re.search(regexp % (card, card, range - 1), str(hand))
if result:
return result
return result

我在 Python 方法中使用了 regexp。你能帮我把事情分开,并告诉我一个更好的启发式做法吗?

最佳答案

我尝试编写正则表达式以便它能够 self 解释:

four = r'4\w '
not_four = r'[^4]\w '
not_four_seq = r'(%s)*' % not_four
res = r'^%s(%s%s){3}$' % (not_four_seq, four, not_four_seq)
if re.match(res, '7C 4H 4H 5D 4H' + ' '):
print 'OK'

关于python - 正则表达式:扑克牌解析器,N 的一种,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35702977/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com