我自己和我的团队都陷入了这个困境,我有以下代码。
$text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut bibendum augue eu arcu mollis cursus. Curabitur nec purus ipsum. Fusce ut erat leo, vitae malesuada lacus. Quisque varius gravida justo ut aliquam. Integer accumsan, ante non volutpat semper, orci sem luctus odio, sit amet convallis odio justo id nisl. Nunc sed lacus nisi, quis accumsan massa. Donec ante enim, fermentum sit amet placerat nec, eleifend elementum nibh
[[BLOGIMAGE_20090303011757.jpg||480]]
us dolor nec est. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam accumsan blandit purus eget vestibulum. Nullam neque sem, suscipit sit amet mattis eu, imperdiet quis ligula. Integer aliquam dapibus gravida. Pellentesque ultrices sapien orci. Suspendisse at eros non dolor accumsan cursus mattis nec justo.
[[BLOGIMAGE_20090303011819.jpg||480]]
Aenean cursus lacinia arcu vitae malesuada. Fusce fermentum enim sit amet elit fermentum at consectetur ante vulputate. Aliquam sagittis nulla id magna facilisis tempus. Suspendisse eget feugiat libero. Pellentesque non lorem sem, eu posuere velit. Nulla id nulla ligula.
[[BLOGIMAGE_20090303011842.jpg||480]] ..... etc";
$pat = "\[\[(.*)\|\|(.*)\]\]";
$mat = '<img src="/path/to/file/imgs/$1" width="$2px" />';
$text = preg_replace($pat , $mat, $text);
我们想要做的是将 [[图像文件||size]] 使用 $mat 中的结构插入图像标签。该匹配在 RegEx(一个 adobe air 程序)和各种 javascript 在线测试器中完美运行
我收到的错误是:-
消息:preg_replace()
[function.preg-replace]:分隔符
不能是字母数字或反斜杠
所以如果我添加一个分隔符,例如......
$拍=“^[[(.)\|\|(.)]]^";
然后匹配停止工作,但我不再收到任何错误。
任何帮助真的将不胜感激。
preg_replace()
需要分隔符:
preg_replace("/$pat/" ...
传统上它是正斜杠,但它可以是任何字符 - 特别是当您需要正则表达式本身中的正斜杠时,您可以诉诸另一个字符。
这种灵活性使您能够表达"/http:\/\/foo\/bar\//"
(“倾斜牙签综合症”)"!http://foo/bar/!"
.
分隔符是将正则表达式与正则表达式标志(也称为“修饰符”)分开所必需的,例如:
preg_replace("/$pat/i" ...
……这使用了i
标志来声明不区分大小写的正则表达式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)