2010-12-13 72 views
0

即時嘗試刪除與preg替換控制腳本情況下的unnessary評論,但我的正則表達式是不正確的。任何人有任何想法什麼是錯誤的我的正則表達式? (我的Apache/2.0.54 & PHP/5.2.9php函數preg_replace正則表達式不工作,一個語法問題

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! 

AFTER:

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,cuase im所以darn接近解決這個謎語!

+1

您是否考慮過使用正確的標記符而不是正則表達式?你將只能扔掉評論標記。 – cdhowie 2010-12-13 18:42:14

+1

多行註釋怎麼樣?特別是嵌套的多行註釋?對於正則表達式來說,這是非常不平凡的,但對於一個標記器/ *這是微不足道的/ *這是一個/ *嵌套評論*/ – 2010-12-13 18:46:08

+0

一致地寫評論意味着沒有空間容納這樣一個奇怪的事物。儘管如此諷刺的是,這種關於一致性的演講來自一個非常無能的程序員,即我自己哈哈! – Sam 2010-12-13 21:04:41

回答

1

試試這個正則表達式:

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

要小心,雖然,考慮像字符串:

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

/* 
// not a comment */ 

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

而且您可能需要解決https://...ftp://...等問題。

+0

#BEAUTIFULL !!!!缺乏評論中的那些奇怪的情況給予更簡潔的代碼空間:你的正則表達式第一次開箱即用!祝你巴特週末愉快! – Sam 2010-12-13 21:09:02

+0

@Sam,不客氣。週末?這將需要幾天時間,但謝謝你,你也有美好的一天! :) – 2010-12-14 07:25:03