我想從我的JS函數數組中刪除一個JS函數,但我無法弄清楚它的正確的regExp。Php正則表達式爲preg_replace刪除一個文本
這是文本(功能)我想刪除:
window.addEvent('domready', function() {
SqueezeBox.initialize({});
SqueezeBox.assign($$('a.modal'), {
parse: 'rel'
});
});
,我寫了這個代碼刪除:
<?php if (isset($this->functions['text/javascript'])) {
$this->functions['text/javascript'] = preg_replace('%window\.addEvent\(\'domready\',\s*function\\(\\)\s*\\{SqueezeBox\\.initialize\\(\\{\\}\\);\s*SqueezeBox\\.assign\\(\\$\\$\\(\'a\\.modal\'\\), \\{parse: \'rel\'\\}\\);\\}\\);\s*%', '', $this->functions['text/javascript']);
if(empty($this->functions['text/javascript'])) {
unset($this->functions['text/javascript']);
}
} ?>
我不是在正則表達式那麼好,所以我」米丟失,不知道在哪裏尋找模式中的錯誤。
你應該更稀疏地匹配它。使用'。*?',只需在內部查找'SqueezeBox'而不是斷言整個函數體。例如,你在'parse:'之前忘了'\ s *'。可能需要更多這些。 (但是,逃避的好工作) – mario
如果你刪除了preg_replace並且只是給了「」,該怎麼辦? - 對不起,我的問題很可悲。 –
一個問題是你需要使用['(PCRE_DOTALL)'flag](http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php),如果你想要* '匹配換行符。 – user113215