【问题标题】:How to replace the first occurrence only of any item in a list/array? (PHP)如何仅替换列表/数组中任何项目的第一次出现? (PHP)
【发布时间】:2015-08-13 19:03:18
【问题描述】:

我有这样的文字:

保罗爱安娜,安娜爱约翰,约翰爱贝蒂。不幸的是,贝蒂爱保罗。保罗现在恨安娜,因为她爱约翰。但约翰爱贝蒂,这就是安娜难过的原因。现在安娜想嫁给保罗,但为时已晚。

我需要替换每个名称的第一次出现。我需要使用preg_replace_callback 吗?有没有更简单的解决方案?

【问题讨论】:

  • 你怎么知道一个名字与now、hates、Unluckily等?
  • 你必须有一个名称的单词列表才能评估一个单词是否是一个名称,将其视为数组问题似乎更简单?

标签: php regex preg-replace str-replace preg-replace-callback


【解决方案1】:

preg_replace(以及 preg_replace_callback)接受一个参数来限制它替换某些东西的次数。

http://php.net/manual/en/function.preg-replace.php

我不擅长模式,但你应该能够弄清楚模式,然后使用类似的东西

preg_replace($patterns, "", $string, 1);

我看不出它可以变得多么简单

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    • 1970-01-01
    • 2013-06-15
    • 2014-01-28
    • 2012-09-03
    相关资源
    最近更新 更多