我有以下字符串:
http://csgo.steamanalyst.com/id/2053/XM1014-BLAZE-ORANGE-FACTORY-NEW
http://csgo.steamanalyst.com/id/2053/XM1014-BLAZE-ORANGE-MINIMAL-WEAR
http://csgo.steamanalyst.com/id/2053/XM1014-BLAZE-ORANGE-BATTLE-SCARRED
http://csgo.steamanalyst.com/id/117344/STATTRAK-XM1014-HEAVEN-GUARD FACTORY-NEW
http://csgo.steamanalyst.com/id/117325/STATTRAK-XM1014-HEAVEN-GUARD-WELL-WORN
http://csgo.steamanalyst.com/id/117330/STATTRAK-XM1014-HEAVEN-GUARD-BATTLE-SCARRED
我需要找到最后两个字 - 即:
FACTORY-NEW
MINIMAL-WEAR
BATTLE-SCARED
我想实现与此类似的东西:
if ($item == 'FACTORY-NEW') {
$grade = 'fn';
}
答案 0 :(得分:2)
答案 1 :(得分:1)
您可以尝试使用正则表达式:
(?<=-|)([A-Z])[A-Z]+-([A-Z])[A-Z]+$
表示:
(?<=-|)
- -
的后视,因此需要暂停元字符
先于-
([A-Z])[A-Z]+-([A-Z])[A-Z]+
- 两组大写字符,-
之间,$
- 一行的结尾,所以在行尾的正则表达式匹配,最后两个单词
你可以用$ 1 $ 2 答案 2 :(得分:0)
您可以尝试以下方式:
$splitUp = split("-", "http://csgo.steamanalyst.com/id/2053/XM1014-BLAZE-ORANGE-FACTORY-NEW")
然后,取结果数组的最后两个元素并创建一个新字符串
$newString = $splitUp[count($splitUp)]-1 . "-" . $splitUp[count($splitUp)];
这将为您提供倒数第二个元素,一个破折号,以及最后一个元素作为新字符串。
答案 3 :(得分:0)
$str ="http://csgo.steamanalyst.com/id/2053/XM1014-BLAZE-ORANGE-FACTORY-NEW";
$arr=explode("-",$str);
$count=count($arr);
$newStr="";
for($i=$count-2;$i<=$count-1 ;$i++){
$newStr .= $arr[$i].'-';
}
$newStr=rtrim($newStr, "-");
echo $newStr;
您可以在第一行代码动态处将字符串传递给$ str变量,以获得您想要的结果。