php函数preg_replace正则表达式无法正常工作,这是一个语法问题

时间:2010-12-13 18:39:55

标签: php regex preg-replace pcre

我试图在受控脚本情况下使用preg-replace删除unnessary注释,但我的正则表达式是不正确的。任何想法我的正则表达式有什么问题吗? (我有Apache / 2.0.54& PHP / 5.2.9

BEFORE:

// Bla Bli Blue Blow Bell Billy Bow Bye
script var etc ();    // cangaroo cognac codified cilly celine cocktail couplet
script http://blaa.org    // you get the idea!

后:

script var etc ();
script http://blaa.org

问题:使用什么正则表达式?

# when comment starts on a new line, delete this entire line
# find [a new line] [//] [space or no space] [comment]
$buffer = preg_replace('??', '??', $buffer);

# when comment is halfway in script (    //  comment)
# find [not beginning of a line] [1 TAB] [//] [1 space again] [comment]
$buffer = preg_replace('??', '??', $buffer);

任何和所有的建议都会被我重视+1,因此我很接近解决这个谜语!

1 个答案:

答案 0 :(得分:1)

试试这个正则表达式:

/(?<!http:)\/\/[^\r\n]*/

请谨慎,考虑如下字符串:

<!-- 
// not a comment -->

/* 
// not a comment */

var s = "also // not // a // comment";

您可能希望解决https://...ftp://...等问题。