php
  • preg-replace
  • preg-match
  • 2011-12-26 95 views -1 likes 
    -1

    对不起,但我无法解决我的问题,你知道,我是一个noob。 我需要找到与preg_match字符串中的东西..然后用preg_replace替换为新词,没关系,但我不明白如何将替换的字放回该字符串。 这是我得到Preg_match,替换并回到字符串

    $text ='zda i "zda"'; 
    preg_match('/"(\w*)"/', $text); 
    $najit = '/zda/'; 
    $nahradit = 'zda'; 
    $o = '/zda/'; 
    $a = 'if'; 
    $ahoj = preg_replace($najit, $nahradit, $match[1]); 
    

    ,能不能请你帮我一次?

    +0

    你能帮助我们吗?你想要完成什么? – Howard 2011-12-26 18:00:26

    +0

    @Howard - 用单词if替换$ text中的单词zda,但不用单词“zda”(用引号引起来) – 2011-12-26 18:03:56

    回答

    3

    您可以使用例如利用负lookarounds下面的代码来完成你想要什么:

    $newtext = preg_replace('/(?<!")zda|zda(?!")/', 'if', $text) 
    

    它将取代的zda未用引号括起来两侧任何occurence(即U"Vzda"Wzda将被替换,因为它不直接封闭到引号中)。

    +0

    非常感谢! – 2011-12-26 18:18:51

    +0

    “U”Vzda“Wda将被替换,因为它不直接包含在引号中)”。有什么方法不能取代这个词? 它是一种翻译,我不想在qoutation中取代所有的东西。希望你能理解我..谢谢 – 2011-12-26 18:23:58

    +0

    ''X“YzdaZ”'':现在是封闭还是不封闭?你需要指定更好的内容 – Howard 2011-12-26 18:27:59

    相关问题