0
我在preg_replace中使用'e'修饰符来搜索给定的字符串。然后,我需要它该字符串使用其他的preg_replace声明个人比赛中看看:在转义令牌时嵌套preg_replace函数
$str = "This is FOO.";
$str = preg_replace('/(foo)/ie', "x$1", $str);
echo $str;
这将产生:This is xFOO.
现在我需要窝。 (我是嵌套的,因为我需要将未知数量的组匹配到不同的标记中,这在本论坛其他地方讨论过的单个preg_replace语句中是不可能的,我显然简化了这些代码以专注于我的问题)。
$str = "This is FOO.";
$str = preg_replace('/(foo)/ie', "preg_replace('/(\w)/i','x$1','$1')", $str);
echo $str;
我想这能产生This is xFxOxO.
但相反,它产生This is xFOOxFOOxFOO.
当PHP评估的第二行代码,它的更换两个$ 1个令牌与匹配的字符串foo
。我需要它忽略第一个$ 1标记,因为它应该由内部preg_replace语句进行评估。我如何逃避第一个$ 1令牌,以便它不会被外部preg_replace语句评估?
是的,这很好。只要加上''。'就足以推迟对该令牌的评估。谢谢。为了回答你的问题,我使用它来将文本文件标记为xml。我用标签标识整行,然后用标签标识其中的元素。 –
Andrew
2010-08-31 22:02:04