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('
和
')));
答案 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)
$output = preg_replace("/document[^']*'([^']*)[^;]*;/", '$1', $output);