【问题标题】:preg_repalce php regex - replacing everything starting with "(" or ending with ")"preg_repalce php regex - 替换以“(”开头或以“)”结尾的所有内容
【发布时间】:2017-10-28 21:04:00
【问题描述】:

如何用preg_replace 替换php 中以a 开头(或以a 结尾)的每个字符串?

【问题讨论】:

  • 当您只需要查看字符串的第一个或最后一个字符时,为什么还要使用 preg_replace?
  • 你想用什么替换它,你尝试了什么?什么不起作用?
  • 不清楚,这不是一个好问题!没有例子,你也没有展示你已经尝试过的东西。您的问题将在没有答案的情况下关闭。快速编辑。

标签: php regex preg-replace


【解决方案1】:

您不需要正则表达式。

If(substr($str,0,1) == "(" || substr($str, -1) == ")") { 
    // Replace string
    $str = "hello world";
}

在这里测试:https://3v4l.org/g9iYc

【讨论】:

    【解决方案2】:

    另一种选择是trim() 字符并将字符串的长度与strlen() 进行比较:如果它们相等,则字符串不会以括号开头或结尾,反之亦然:

    if (strlen(trim($sample, "()")) !== strlen($sample)) {
        // do your logic
    }
    

    Demo

    【讨论】:

      【解决方案3】:

      通常是这样preg_replace( '/^[(]|[)]$/g', "add replacement", $target );

      【讨论】:

      • 不确定,但我认为问题中的“字符串”表示“子字符串”。
      • 我会用这个然后(?<!\S) [(] | [)] (?!\S)
      • 真的吗?他想替换整个子字符串。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-16
      • 2023-03-19
      • 2017-04-06
      • 2013-03-02
      • 2018-04-03
      • 1970-01-01
      相关资源
      最近更新 更多