preg_replace PHP AND

时间:2011-05-01 23:57:46

标签: php regex preg-replace

PHP是否有AND运算符 - 正则表达式。

我正在尝试替换从document')的所有内容。

$output = preg_replace('/document.*\'/', '', $output);

知道如何做到这一点?

我试过为RegEX找到一些教程,但我找不到任何好处。如果您有任何好的网站或书籍,请给我一个链接。我google了很多。

感谢。

编辑:误解。

这是替换前的代码。

<p>document.write(unescape('
<embed src="XXXXXX" type="application/x-shockwave-flash" wmode="window" width="712" height="475"%.35" allowFullScreen="true" ></embed>
')));</p>

我想让它看起来像这样:

<p>
<embed src="XXXXXX" type="application/x-shockwave-flash" wmode="window" width="712" height="475"%.35" allowFullScreen="true" ></embed>
</p>

替换:

document.write(unescape('

')));

4 个答案:

答案 0 :(得分:2)

你真正想要的是更换两个部分,并在两者之间留下一些东西。要使其不匹配不需要的部分,请使用显式字符类:

= preg_replace("/document[\w.(]+['](.*?)['][);]+/s", '$1', $output); 

所以它匹配('')中包含的任何内容,后者的数量不同。

答案 1 :(得分:0)

您的意思是OR吗?

您想要去掉范围["document", "'"]和范围["document", ")"],对吧?这就像范围["document", "'" OR ")"]

在正则表达式中,|表示“或”。

$output = preg_replace('/document.*(\'|\))/', '', $output);

答案 2 :(得分:0)

在正则表达式中,AB为A and B A | B为A OR B

所以如果你想匹配'),那就把它放在正则表达式中。

另一方面,如果您希望将')与字符串末尾匹配,请使用'|)[')]

使用类似http://gskinner.com/RegExr/的内容来试用你的正则表达式。它也有右边的描述。

答案 3 :(得分:0)

  • 使用括号创建匹配组
  • 使用$ 1来引用它

$output = preg_replace("/document[^']*'([^']*)[^;]*;/", '$1', $output);