私は単線コメント(//...)
をブロック(/*...*/)
にブロックする必要があります。私はこれを次のコードでほぼ達成しました。しかし、私は、ブロックコメントに既にある行コメントをスキップする機能が必要です。現在、1行のコメントがブロックコメントに含まれている場合でも、1行のコメントに一致します。単線コメントをブロックするコメント
## Convert Single Line Comment to Block Comments
function singleLineComments(&$output) {
$output = preg_replace_callback('#//(.*)#m',
create_function(
'$match',
'return "/* " . trim(mb_substr($match[1], 0)) . " */";'
), $output
);
}
私は$ x = "スラッシュ付きの文字列//"と心配していません。 $ x = "some strings/* with slashes * /";となります。それは実際に好まれるでしょう。一方、私はあなたが示唆した変更を追加し、コンパイルエラーを得ました。 警告:preg_replace_callback()[function.preg-replace-callback]:コンパイルに失敗しました:lookbehindアサーションは、C:\ Wamp \ www \ LessCSS \ Site \ cleaner \ inc \ util.php 29 – roydukkey
PHPのルック・バック機能は、固定長アサーションのみをサポートしています。つまり、定義されていない数の文字にマッチするルックバックビハインド正規表現を書くことはできません。これは*と?の使用を排除します。詳細はこちら:http://www.php.net/manual/en/regexp.reference.assertions.php –
ヘッドアップに感謝します。今すぐ動作するはずです。 –