preg_replace仅显示数字和破折号

3

我有这个字符串:

Height (cm): 200 - 250 (cm)

我只想显示数字和短横线,所以剩下的字符串将是:
200 - 250

这是我的尝试,但我该如何包含破折号?

 $item_data = preg_replace("/[^0-9]/", '', $item_data);
2个回答

9
这应该适用于您:
只需添加破折号和一个空格即可。另外不要忘记使用trim()函数去掉值开头和结尾的空格。
$str = "Height (cm): 200 - 250 (cm)";
echo $item_data = trim(preg_replace("/[^0-9 -]/", '', $str));

输出:

200 - 250

1
你只缺少了 -。将其添加到模式中。尝试使用 -。
$item_data = preg_replace("/[^0-9 \-]/", '', $item_data);

通过这样做,您将失去数字之间的空格!根据 OP 的问题,我认为他想保留它们。 - Rizier123
@Rizier123 更新了答案。 :) - Sougata Bose

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接