【问题标题】:Changing ereg_replace to equivalent preg_replace [duplicate]将 ereg_replace 更改为等效的 preg_replace [重复]
【发布时间】:2011-06-07 18:08:35
【问题描述】:

可能的重复:
How can I convert ereg expressions to preg in PHP?

使用 preg_replace 与以下表达式等价的是什么?

ereg_replace('^' . $g_lang_prefix, '', $t_var );

【问题讨论】:

标签: php


【解决方案1】:
preg_replace('/^' . preg_quote($g_lang_prefix,'/') . '/', '', $t_var );

如果您需要 $g_lang_prefix 作为通用正则表达式,请省略 preg_quote

preg_replace('/^' . $g_lang_prefix . '/', '', $t_var );

(很明显)

另外,如果您需要第二种解决方案,但您的 $g_lang 甚至可以包含这个字符 /,那么您至少需要转义它:

preg_replace('/^' . str_replace('/','\/',$g_lang_prefix) . '/', '', $t_var );

【讨论】:

  • +1 用于使用 preg_quote。
  • 我不得不这样做,考虑到我不知道 $g_lang_prefix 可能是什么 :)
  • 也许$g_lang_prefix 应该包含前缀的正则表达式。
  • @yes 谢谢,这个preg_replace('/^' . preg_quote($g_lang_prefix,'/') . '/', '', $t_var ); 工作得很好!
  • @salathe:你能解释一下为什么是 -1 吗?
猜你喜欢
  • 2011-09-13
  • 2013-05-26
  • 2012-01-28
  • 2012-08-06
  • 2013-08-06
  • 1970-01-01
  • 1970-01-01
  • 2013-05-30
相关资源
最近更新 更多