gpt4 book ai didi

php - PHP 正则表达式查询

转载 作者:可可西里 更新时间:2023-11-01 13:19:35 24 4
gpt4 key购买 nike

我一直在尝试自学如何使用正则表达式,如果这对某些人来说似乎微不足道,我深表歉意。

我做了一点 crib脚本。它使用一副标准的扑克牌,我使用 CDHS(梅花、方 block 、红心、黑桃)表示花色,A2..9TJQK(ace、2.. .9, 10, jack, queen, king) 的行列。

我有变量 $hand,它是一个偶数长度的卡片串。例如,S2HA3D 分别是黑桃 2、红桃 A 和方 block 3。请注意,花色和等级可以倒过来。

我正在使用:

preg_match_all("/[2-9ATJQK][CDHS]|[CDHS][2-9ATJQK]/i", $hand, $result);

找到所有的牌,但这会按照找到的顺序返回花色和等级。

我的问题是,无论给出的顺序如何,我怎样才能让每张卡片的排名第一。我希望我已经表达清楚了。

最佳答案

我不认为你可以只用 preg_match 来做到这一点。

此函数旨在匹配 字符串,而不是操纵 它们。但是,您可以在第二遍中执行 preg_replace:

preg_match_all("/[2-9ATJQK][CDHS]|[CDHS][2-9ATJQK]/i", $hand, $rawResult);
$normalisedResult = preg_replace('/([CDHS])([2-9ATJQK])/i', "$2$1", $rawResult[0]);

如果您想知道,$1$2 是对 preg_replace() 第一个参数中括号标识的组的反向引用。

关于php - PHP 正则表达式查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17348223/

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