我有几个类似于下面的字符串: ORG-000012 – 变体名称 – 数量:12 包 – 14.95 美元
我需要用 php 删除第二个连字符之前和最后一个连字符之后的所有字符。例如,上面的字符串需要返回为: 变体名称 – 数量:12 包
我曾尝试使用 strpos 和 substr,但我似乎无法获得正确的设置。请帮忙!
最佳答案
可以找到-
第一次出现的位置字符使用 strpos
并使用 strrpos
找到最后一次出现的位置:
$s = 'ORG-000012 - Name of variation - Quantity: 12 Pack - $14.95';
$sub = substr($s,strpos($s, '-')+1, strrpos($s, '-')-strlen($s));
print $sub; // or print trim($sub) to remove the whitespaces
它所做的是,它将打印 $s
的子字符串从第一次出现 -
后的一个字符开始字符,并省略最后一次出现的字符 -
通过将负值(字符串总长度与最后一次出现 -
字符的位置之差)作为长度传递给 substr
.
请注意,这将打印最后一个 -
之前的空格字符同样,所以你可能想要 trim
结果也是如此。
关于php - 在第二次出现一个字符之后和最后一次出现相同字符之前返回一个字符串与php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46268571/