【发布时间】:2019-12-28 02:41:12
【问题描述】:
我想从一些 URL 中提取两个值。
示例网址:
cricket-ck-game-playhand-ball-hb-game-playvolley-ball-vb-game-playsoccer-sc-game-play
我想分别提取游戏全名及其短名,忽略网址末尾的-game-play部分。
我尝试了以下代码,它返回“ck”、“hb”、“vb”、“sc”,但没有返回全名。
preg_match("/(?<=-)[^-]*(?=-game-play)/", $uri, $game);
我得到的实际结果:
array(1) {
[0]=>
string(2) "ck"
}
预期结果:
case:1 (In case of example 1) - array(2) {
[0]=>
string(7) "cricket"
[1]=>
string(2) "ck"
}
case:2 (In case of example 2) - array(2) {
[0]=>
string(9) "hand-ball"
[1]=>
string(2) "hb"
}
【问题讨论】:
-
ck等之前的部分是否总是超过 2 个字符,短名称是否总是 2 个字符?他们总是字符 a-z 吗? -
是的,'ck' 之前的部分总是超过 2 个字符,而且短名称总是 2 个字符并且总是只有字母(有时可以是大写字母或 Uc 之类的)
标签: php regex preg-match preg-match-all