【问题标题】:escape a + sign in preg_replace在 preg_replace 中转义 + 号
【发布时间】:2011-04-02 10:58:55
【问题描述】:

我怎样才能摆脱这个?

/{\([^.{}]*)-}/

还有这个?

/{\([^.{}]*)+}/

【问题讨论】:

  • 你想要摆脱什么,或者你为什么必须摆脱那些?
  • salathe,我发现 url 编码序列化会话数据时必须转义 + 符号。所以 OP 的问题是有效的。

标签: php regex replace preg-replace


【解决方案1】:

你需要转义括号大括号加号——如果你想从字面上匹配它们。您的正则表达式的 PHP 代码将是:

$output = preg_replace('/\{\([^.{}]*\)-\}/', 'replace-string', $input);

...和...

$output = preg_replace('/\{\([^.{}]*\)\+\}/', 'replace-string', $input);

它将匹配 {(abc)-} {(abc)+} 之类的内容。

【讨论】:

    【解决方案2】:

    preg_quote会给你答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多