首页 > 解决方案 > REGEX 匹配所有并用其他字符串替换字符串

问题描述

我正在使用 REGEX 匹配所有模式并将每个匹配值替换为另一个字符串。

我的内容中有这些类型的代码

[amazon template=AmazonPreisNormal&asin=B00EJKWCJ4]
[amazon template=amazon_nur_eur&asin=B00EJKWCJ4]

我想要做的是将 template= 值替换为另一个字符串,如下所述

对于AmazonPreisNormal我想用widget-pricenormal替换它,所以对于所有其他

在 preg_match_all 之后,我得到了这个数组,如下所示:

Array
 (
   [0] => Array
    (
        [0] => template=AmazonPreisNormal&
        [1] => template=amazon_nur_eur&
        [2] => template=AmazonLink&
        [3] => template=preisbeiamazon12&
        [4] => template=preis10&
        [5] => template=beiamazon11&
        [6] => template=beiamazon&
        [7] => template=xx_bei_amazon&
        [8] => template=beiamazon11br&
        [9] => template=beiamazon12&
        [10] => template=Image&
        [11] => template=preisbeiamazon12&
    )

[1] => Array
    (
        [0] => AmazonPreisNormal
        [1] => amazon_nur_eur
        [2] => AmazonLink
        [3] => preisbeiamazon12
        [4] => preis10
        [5] => beiamazon11
        [6] => beiamazon
        [7] => xx_bei_amazon
        [8] => beiamazon11br
        [9] => beiamazon12
        [10] => Image
        [11] => preisbeiamazon12
    )

  )

现在我想要的是获取每个匹配的模板值并将其替换为另一个值,例如AmazonPreisNormal我想用widget-pricenormal ad 替换它,等等所有其他具有不同字符串的值。

我正在尝试这样的事情,但从未得到输出

    $numberOfMatches = count($matches[0]);

    for ($i = 0 $i < $numberOfMatches; $i++;) { 
       $templaname =  $matches[0][$i];
    }

    if($templaname = 'beiamazon11') {
      $replacementTemplate = 'template="widget-beiamazon11"';
    }elseif($templaname = 'AmazonPreisNormal')  {
      $replacementTemplate = 'template="widget-pricenormal"';
    }elseif($templaname = 'amazon_nur_eur')  {
       $replacementTemplate = 'template="widget-nureur"';
    }elseif($templaname = 'AmazonLink')  {
       $replacementTemplate = 'template="widget-amazonlink"';
    }elseif($templaname = 'preisbeiamazon12')  {
       $replacementTemplate = 'template="widget-preisebeiamazon12"';
    }elseif($templaname = 'preis10')  {
       $replacementTemplate = 'template="widget-preis10"';
    }

任何有关这方面的帮助将不胜感激

标签: phpregexsearchpreg-replace

解决方案


推荐阅读