【发布时间】:2013-12-16 07:46:15
【问题描述】:
我想创建一个脚本,从文件中删除所有 cmets。我目前的正则表达式是这样的:
$new = preg_replace_all("/(\/\*.*\*\/)/s", "", $contents);
匹配(并删除)/* 和 */ 之间的任何内容
当文件的内容是这样的时候问题就很明显了,例如:
/* First comment */
first_function();
/* Second comment */
second_function();
我的正则表达式没有删除第一个和第二个注释并保留两个函数调用,而是匹配从第一个 /* 到最后一个 */ 的所有内容,从而完全删除了 first_function() 调用。
我想一个解决方案是用可以匹配任何东西的东西替换我的.*(匹配任何东西)直到你到达*/。但我不知道该怎么写。我预计它会像 [^\*\/] 一样,但它没有按预期工作。
什么是正确的正则表达式?
【问题讨论】:
标签: php regex preg-replace