【问题标题】:PHP preg_replace word but not if there is certain characters preceding the wordPHP preg_replace 单词但如果单词前面有某些字符则不会
【发布时间】:2011-10-12 14:39:16
【问题描述】:

我想用 PHP preg_replace 替换一个单词。 如果字符 /> 存在于该单词之前,则不应替换该单词。

如果匹配则应该替换

$word = "foo";

如果匹配则不应替换

$word = "/>foo";

【问题讨论】:

标签: php regex preg-replace


【解决方案1】:

你在这里;-)

(?<!/>)foo

祝你好运

【讨论】:

  • 我试过你的正则表达式,但似乎替换了测试字符串“/>foo”。
  • @AurelioDeRosa:你是怎么尝试的?这是正确答案。在 PHP 中添加它可能会有所帮助,您需要在正则表达式周围使用分隔符,所以它看起来像 $result = preg_replace('%(?&lt;!/&gt;)foo%', 'REPLACED', $subject);
  • 有人用 PHP 试用过吗?
  • 这是正确答案,我得到了它与@TimPietzcker 建议的合作
  • @AurelioDeRosa:很抱歉搞混了,我是“正则表达式迷”但不是 PHP 专业人士 :-D
【解决方案2】:
if ($word[0] != '/' && $word[1] != '>') {
    $new_string = str_replace($word, $replace, $string);
}

【讨论】:

    猜你喜欢
    • 2020-05-29
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 2020-04-12
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多