【问题标题】:Replacing pattern in PHP [closed]替换 PHP 中的模式 [关闭]
【发布时间】:2012-10-20 19:40:38
【问题描述】:

我在字符串中有要替换为其他内容的模式。

例如

$str = '{1} Foo Bar {4}';

我希望将上面的字符串转换为:

$str = arg(0). 'Foo Bar'.arg(4)

【问题讨论】:

  • 到目前为止你有没有尝试过?
  • 不明白:您只想删除“Foo Bar”周围的空格?
  • 不,我想将模式 {number} 替换为 arg(number)。例如{2} 应该是 arg(2),其中 arg() 是函数。
  • 请了解更多详情

标签: php regex


【解决方案1】:

在这种情况下,最好使用preg_replace_callback()。不清楚arg(4) 是什么,是变量调用还是真正的函数调用。

只有当你可以约束匹配的值时,你才可以像这样使用preg_replace/e

 $text = preg_replace('~ [{] (\d+) [}] ~xie', 'arg($1)', $text);

这将为{n} 的每次出现调用arg($decimal)。如果您只匹配示例中的小数,则可行。

【讨论】:

  • 谢谢,它真的很棒的解决方案。这正是我一直在寻找的。​​span>
【解决方案2】:

遍历这个函数

str_replace

preg_replace

for(i=0;i<n;i++){

$str = str_replace("{i}", arg(i), $str);
}

【讨论】:

    猜你喜欢
    • 2022-11-24
    • 1970-01-01
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    相关资源
    最近更新 更多