preg_replace的Php正则表达式,用于删除特定文本

I'm trying to remove a JS function from my JS functions array but I couldn't figure out the right regExp for it.

this is the text(function) I want to remove :

window.addEvent('domready', function() {

  SqueezeBox.initialize({});
  SqueezeBox.assign($$('a.modal'), {
    parse: 'rel'
  });
});

and I wrote this code for remove it:

<?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']);
      }
  } ?>

I'm not so good in regexp so I'm lost and don't know where look for error in the pattern.

Regexes are poorly adapted to solving this sort of problem. I would recommend outputting some sort of flag variable from the php and using it as a condition in your js, which would go something like this:

window.addEvent('domready', function() {
if(flag){
  SqueezeBox.initialize({});
  SqueezeBox.assign($$('a.modal'), {
    parse: 'rel'
  });
}
});

You can then output var flag=true or var flag = false in your php, depending on your logic.

Finally I made it. Thanks to everyone for help!

This is final code which worked for me.

<?php 
  if (isset($this->functions['text/javascript'])) {
      $this->functions['text/javascript'] = preg_replace('%window\.addEvent\(\'domready\',\s*function\(\)\s*{\s*SqueezeBox.initialize\(\{\}\)\;\s*SqueezeBox.assign\(\$\$\(\'a.modal\'\)\,\s*{\s*parse:\s*\'rel\'\s*}\);\s*}\);\s*%', '', $this->functions['text/javascript']);
      if(empty($this->functions['text/javascript'])) {
          unset($this->functions['text/javascript']);
      }
  } 
?>