Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
preg_替换PHP和_Php_Regex_Preg Replace - Fatal编程技术网

preg_替换PHP和

preg_替换PHP和,php,regex,preg-replace,Php,Regex,Preg Replace,PHP正则表达式有一个和操作符 我正在尝试替换所有内容,从文档到”和) 你知道怎么做吗 我试着为正则表达式找到一些教程,但找不到任何好的。如果你有任何好的网站或书籍,请给我一个链接。我在谷歌上搜索了很多 谢谢 编辑:误解 这是更换前的代码 <p>document.write(unescape(' <embed src="XXXXXX" type="application/x-shockwave-flash" wmode="window" width="712" height="

PHP正则表达式有一个
操作符

我正在尝试替换所有内容,从
文档

你知道怎么做吗

我试着为正则表达式找到一些教程,但找不到任何好的。如果你有任何好的网站或书籍,请给我一个链接。我在谷歌上搜索了很多

谢谢

编辑:误解

这是更换前的代码

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


你是说
还是

您想剥离范围
[“文档”,“'”]
和范围
[“文档”,“””]
,对吗?这类似于范围
[“document”、“'”或“)”]

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


在正则表达式中,AB是
A和B
A | B是
A或B

因此,如果要匹配
”)
,只需将其放入正则表达式中即可

另一方面,如果要将
'
作为字符串的结尾进行匹配,请使用
'|)
[')]

使用类似的方法来尝试你的正则表达式。右边还有说明。

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

$output=preg_replace(“/document[^']*”([^']*)[^;]*;/”、“$1”、$output)

您真正想要的是替换两个部件,并在这两个部件之间保留一些内容。要使其不匹配不需要的部分,请使用显式字符类:

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

因此,它可以将
(“
”)
中包含的任何内容与后者的不同数量相匹配。

最常用。这些介绍基本上是可以理解的。另外,请查看此工具列表,以获取有关制作用于使用分隔符的regexpressions.Creds的帮助。很多新来者都不喜欢。:)@马里奥,我以前检查过。它看起来对新来者并不友好。我会再看一次,谢谢:)抱歉误解了,用一个例子更新了第一篇帖子。@Muazam:我还是不太明白。也许我太累了。@Muazam:你的问题没有要求我:(我想把它们都匹配起来,但不是按照顺序。谢谢Syntax错误,意外的']',看起来像是高级正则表达式。谢谢你的帮助:)代码没有替换任何内容或给出任何错误。谢谢你的帮助。@Muazam:没错。请使用
/s
修改器重试。以你的例子为例。
<p>
<embed src="XXXXXX" type="application/x-shockwave-flash" wmode="window" width="712" height="475"%.35" allowFullScreen="true" ></embed>
</p>
document.write(unescape('
')));
$output = preg_replace('/document.*(\'|\))/', '', $output);
= preg_replace("/document[\w.(]+['](.*?)['][);]+/s", '$1', $output);