2011-12-26 24 views
-1

申し訳ありませんが、私の問題は解決できません。 私はpreg_matchで文字列内の何かを見つけ出す必要があります。次にpreg_replaceを使って新しい単語に置き換えてください。これは大丈夫ですが、置き換えられた単語をその文字列に戻す方法はわかりません。 これは、私がPreg_match、Replace and string to back

$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

+0

@Howard - $ textの単語zdaを単語ifに置き換えますが、単語 "zda"は引用符で囲まずに –

答えて

3

たとえば、負の前後参照を利用し、次のコードは、あなたが望むものを達成するために:それは直接囲まれていないので、

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

それは両側に引用符で囲まれていないzdaのいずれかの発生を置き換えます(U"Vzda"Wzdaに置き換えられますつまり、引用符で囲む)。

+0

本当にありがとう!!! –

+0

"U" Vzda "W zdaは引用符で囲まれていないため置き換えられます)。"その言葉を置き換えない方法がありますか? その一種の翻訳者です。私はqoutationのすべてを置き換えたくありません。ありがとうございました –

+0

'' X "YzdaZ" 'について:これは今では囲まれているかどうかを指定しますか? – Howard