【问题标题】:str_replace string and similar stringstr_replace 字符串和类似字符串
【发布时间】:2013-06-20 18:28:21
【问题描述】:

我正在尝试将 str_replace() 函数与字符串数组一起使用。

我的问题是我的数组中的某些字符串包含另一个字符串。

这是一个例子:

我有一个产品类别,例如:

$product1 = 'COLLIERPEND';
$product2 = 'COLLIER';

我想将它们全部转换为co

str_replace(array("COLLIER", "COLLIERPEND"), 'co', $product#);

结果是:

$product1 = 'coPEND';
$product2 = 'co';

我可以更改数组中的顺序,但是我的类别太多了。

有没有可以帮助我达到预期结果的功能?

【问题讨论】:

    标签: php string replace strict


    【解决方案1】:

    看看regular expression based replacements,搜索\bCOLLIER\b替换为co。这样你就可以在搜索词的每一边找到词边界,所以你不应该有子词问题。

    或者(因为我不完全理解您的问题)按长度对列表进行排序,最长的在前。

    http://www.regular-expressions.info/wordboundaries.html

    【讨论】:

    • 由于不同字符串的数量,我对长度排序感到害怕,但它起作用了。谢谢
    【解决方案2】:

    根据您的代码,您应该将其修改为(首先按较长的字符串列出):

    str_replace(array("COLLIERPEND", "COLLIER"), 'co', $product#);
    

    【讨论】:

      猜你喜欢
      • 2020-07-23
      • 1970-01-01
      • 1970-01-01
      • 2013-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-08
      • 2012-06-12
      相关资源
      最近更新 更多