2012-07-17 90 views
1

我有以下的正則表達式從PHP文件中刪除評論: %/\*.*?\*/%s如何匹配非包含的東西?

副作用是,上使用globglob($basedir . '/*')它開始消除一切midcode ...

所以我怎麼告訴正則表達式不匹配時,前面有引號還是後面的引號?

+0

使用'preg_match'找到,如果有一個在它前面的報價「有任何佔用或者在它後面「,並將其轉換爲布爾值並用於」if-else語句「中。第一個想法在讀完這個後我腦海裏浮現出來的東西 – Leri 2012-07-17 10:27:42

+4

這很不平凡,因爲你當然也可以在評論中引用引號,然後事情變得非常快速。這意味着任何基於正則表達式的解決方案都不是最理想的 - 實質上,您需要一個完整的PHP語言解析器並使用它來正確識別註釋。 – 2012-07-17 10:28:59

+0

除最簡單的情況外,這是無法完成的。最有可能的是,**只有PHP **可以解析PHP(由於正則表達式和其他非平凡的構造)。對於Perl來說,這已經[在很久以前被證明了](http://www.perlmonks.org/?node_id=663393)。 – 2012-07-17 11:25:43

回答

1

試試這個:

%[^'"]{1}/\*.*?\*/[^'"]{1}%s 

它不僅包括簡單或雙引號前/ *和之後的*/

相關問題