функция php preg_replace regex не работает, вопрос синтаксиса - PullRequest
0 голосов
/ 13 декабря 2010

Я пытаюсь удалить ненужные комментарии с помощью preg-replace в контролируемых сценариях, но мое регулярное выражение неверно.Кто-нибудь есть идеи, что не так с моим регулярным выражением?(У меня есть Apache / 2.0.54 и PHP / 5.2.9

ДО:

// 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 Ответ

1 голос
/ 13 декабря 2010

Попробуйте это регулярное выражение:

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

Будьте осторожны, рассмотрите строки вроде:

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

или

/* 
// not a comment */

и

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

И вы можете обойти https://... и ftp://... и т. Д.

...