【发布时间】:2011-01-19 22:00:13
【问题描述】:
我想替换 F 而不是 \F。
我尝试了以下代码,但没有任何运气。
preg_replace("/[^\\]F/", "f", $str);
【问题讨论】:
-
反斜杠本身可以用反斜杠转义吗?
标签: php regex preg-replace
我想替换 F 而不是 \F。
我尝试了以下代码,但没有任何运气。
preg_replace("/[^\\]F/", "f", $str);
【问题讨论】:
标签: php regex preg-replace
试试这个:
preg_replace("/(?<!\\\)F/", "f", $str);
【讨论】:
这行得通。
$string = preg_replace('/([^\\\]|^)F/', '$1f', $string);
之所以有三个反斜杠,是因为第一个反斜杠转义了字符串的第二个,而那个转义了正则表达式的最后一个。这是另一个网站上关于它的主题:http://forums.devnetwork.net/viewtopic.php?t=125752
更新:感谢@Damp 和@webbiedave
【讨论】:
preg_replace('/([^\\\\]|^)F/', '$1f', 'Fabc'); 我也在检查字符串的开头。您还可以查看负面的后视。