【问题标题】:PHP string - remove character and succeeding three charactersPHP字符串 - 删除字符和后续三个字符
【发布时间】:2016-03-18 15:36:25
【问题描述】:

我有一些类似于以下的文本:

blah blah blah £2.50 blah blah blah

我想从这行去掉价格,所以如下:

blah blah blah blah blah blah

请注意,“blah”可以是很多不同的东西,价值数量也可以,尽管它总是有一个井号

我正在用 php 编写代码,并在想我可以使用 str_ireplace 的变体来找到 £ 符号,然后删除该符号和以下 4 个字符。

提前谢谢你

【问题讨论】:

  • 你试过了吗?
  • $fixed = substr($str, 0, strpos('£', $str) . substr($str, strpos('£', $str) + 4))?
  • 你还没有尝试过任何东西,杰夫。
  • 如果价格多于/少于4个字符怎么办?您可能需要一个正则表达式。也许£\d+\.\d+ 即使它小于一磅并且没有前导 0 也会关闭。此外,在您的替换字符串中,您实际上删除了 5 字符,而不是 4。如果您删除 £2.50,您将有 2 个空格分隔 blahs。

标签: php string substring


【解决方案1】:

使用preg_replace() 使用正则表达式匹配:

$str = "blah blah blah £2.50 blah blah blah";
$result = preg_replace('/£([0-9\.]+) /', '', $str);
echo $result; // "blah blah blah blah blah blah"

所以这匹配 £ 后跟任意数字或小数点,并将它们替换为空 ''

【讨论】:

  • 啊,太棒了,正是我需要的,非常感谢您的快速回复。
【解决方案2】:

您可以使用preg_replace("/£[ 0-9.]+/i", "", 'blah blah blah £2.50 blah blah blah');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-21
    • 2011-06-22
    • 2011-04-28
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多