php - 拆分字符串

时间:2015-08-13 20:37:41

标签: php regex string

我有以下字符串:

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';
}

4 个答案:

答案 0 :(得分:2)

另一个想法:

^.*?(\w)\w+\W+(\w)\w+$

这样,您将通过 $ 1 $ 2 替换所有两个最后的首字母

Regex live here.

答案 1 :(得分:1)

您可以尝试使用正则表达式:

(?<=-|)([A-Z])[A-Z]+-([A-Z])[A-Z]+$

DEMO

表示:

  • (?<=-|) - -的后视,因此需要暂停元字符 先于-
  • ([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变量,以获得您想要的结果。