2011-10-12 52 views
1

我想用PHP替换单词preg_replace。 如果在这个单词前面存在字符/>,它不应该替换该单词。PHP preg_replace单词但不是如果在单词前面有某些字符

如果匹配

$word = "foo"; 

这本应及时更换不应该,如果匹配

$word = "/>foo"; 
+1

[不使用正则表达式来操作HTML](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454# 1732454) –

+0

“/> foo”;?或“/>(换行) foo”; – FailedDev

+0

不想操纵html。在我的情况下,它将永远foo – williamcarswell

回答

7

给你;-)

(?<!/>)foo 

良好替代运气

+0

我试过你的正则表达式,但似乎取代了测试字符串“/> foo”。 –

+1

@AurelioDeRosa:你是怎么尝试的?这是*正确的答案。在PHP中,你需要围绕正则表达式定义分隔符,这很有帮助,所以它看起来像'$ result = preg_replace('%(?)foo%','REPLACED',$ subject);' –

+0

有没有人用PHP试过呢? – williamcarswell

0
if ($word[0] != '/' && $word[1] != '>') { 
    $new_string = str_replace($word, $replace, $string); 
} 
+0

它不工作,因为你不设置返回的值。 –

+0

对不起,编辑:) – 2011-10-12 15:43:15

相关问题