Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.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
Php 将所有字符匹配到一个特定的单词(在本例中是一个html标记)和Regex_Php_Regex - Fatal编程技术网

Php 将所有字符匹配到一个特定的单词(在本例中是一个html标记)和Regex

Php 将所有字符匹配到一个特定的单词(在本例中是一个html标记)和Regex,php,regex,Php,Regex,可能重复: 我不太擅长正则表达式,但我发现了以下代码: <?php $string = "some text (a(b(c)d)e) more text"; if(preg_match("/\((?>[^()]+|(?R))*\)/",$string,$matches)) { echo "<pre>"; print_r($matches); echo "</pre>"; } ?> 我试图改变正则表达式模式,使其匹配开始和结束html标记,

可能重复:

我不太擅长正则表达式,但我发现了以下代码:

<?php
$string = "some text (a(b(c)d)e) more text";
if(preg_match("/\((?>[^()]+|(?R))*\)/",$string,$matches))
{
    echo "<pre>"; print_r($matches); echo "</pre>";
}
?>

我试图改变正则表达式模式,使其匹配开始和结束html标记,而不是括号,但我不知道如何模拟
“[^()]+”
,使其匹配标记而不是括号

这样做的目的是允许我创建一个新的html标记,无论标记在其内部嵌套了多少次,我都可以访问它的内容。
谢谢。

[^()]
定义<代码>^表示“除以下字符外的所有字符”。因此,您的示例可以解释为除括号外的所有内容

如果要解析html标记的内容,则需要
[^]+


如果你有像
Blah这样的内容,当它遇到
时,它会确保regexp“停止进食”,如果它能准确地解析Blah foobar,那么带有Blah foobar的示例会更好地满足我的需要,但感谢您提供了关于DOM的信息,我会研究它it@MaxDOM将具有更好的性能和所有。。。我可以添加解析它的例子,如果你想。。。