【问题标题】:regular expression false delimiter in wordpresswordpress中的正则表达式错误分隔符
【发布时间】:2012-05-14 05:31:54
【问题描述】:

我是正则表达式的新手,我有一个简单的疑问。

我在wordpress中找到了这段代码

$self = preg_replace('|^.*/wp-admin/|i', '', $self); 

根据doc on php.net|是不允许作为分隔符的..

谁能解释一下代码?

【问题讨论】:

    标签: php regex wordpress


    【解决方案1】:

    你试过了吗?

    来自您的link

    在使用 PCRE 函数时,模式需要用分隔符括起来。分隔符可以是任何非字母数字、非反斜杠、非空白字符。

    所以| 是一个完全有效的分隔符。当您阅读该页面上的 cmets 时,他们建议不要使用元字符(如 |)作为分隔符,而应在正则表达式中使用它们。

    由于您的示例 $self = preg_replace('|^.*/wp-admin/|i', '', $self); 中没有替换,所以没有问题,它按预期工作。

    当您在正则表达式中有替换(例如preg_match("|(F|f)oo|", "Foobar"))时,您将收到警告“未知修饰符'f'”,因为解释器认为正则表达式确实在第一个替换处结束。

    结论:允许但不建议使用|^+等正则表达式元字符作为正则表达式分隔符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-08
      • 2014-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多