Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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 正则表达式匹配段落标记之间的文本_Php_Regex_Pattern Matching - Fatal编程技术网

Php 正则表达式匹配段落标记之间的文本

Php 正则表达式匹配段落标记之间的文本,php,regex,pattern-matching,Php,Regex,Pattern Matching,我试图只匹配开始/结束段落标记之间的内容。在RegExr上使用它,我可以匹配一个开头段落标记,它可能有也可能没有任何附加属性,比如class和/或ID 然而,当我试图将这种模式添加到积极的背后时,它会崩溃,我不知道为什么。我试着避开这些符号,但似乎没用。然而,向前看是完美的 下面是整个模式的一个示例: ?您不应该将正则表达式用于此类任务。可以发现许多问题。 见此帖: 使用它非常简单 示例: $str= "<p>tetsd</p> doutside <p> 23

我试图只匹配开始/结束段落标记之间的内容。在RegExr上使用它,我可以匹配一个开头段落标记,它可能有也可能没有任何附加属性,比如class和/或ID

然而,当我试图将这种模式添加到积极的背后时,它会崩溃,我不知道为什么。我试着避开这些符号,但似乎没用。然而,向前看是完美的

下面是整个模式的一个示例:

?您不应该将正则表达式用于此类任务。可以发现许多问题。 见此帖:

使用它非常简单

示例:

$str= "<p>tetsd</p> doutside <p> 232323234</p>";
$doc = new DOMDocument();
$doc->loadHTML($str);
foreach($doc->getElementsByTagName('p') as $para) {
    echo $para->textContent;
}
您不应该使用正则表达式执行此类任务。可以发现许多问题。 见此帖:

使用它非常简单

示例:

$str= "<p>tetsd</p> doutside <p> 232323234</p>";
$doc = new DOMDocument();
$doc->loadHTML($str);
foreach($doc->getElementsByTagName('p') as $para) {
    echo $para->textContent;
}
问题 使用lookbehinds的问题是,在大多数正则表达式引擎中,不允许在其中使用重复

(?<=.*)
因此,$1或\1将包含您想要的数据。

问题 使用lookbehinds的问题是,在大多数正则表达式引擎中,不允许在其中使用重复

(?<=.*)

因此,$1或\1将包含您想要的数据。

这几乎就是我需要的。我可以使模式与标记以及其中包含的内容相匹配。我遇到的问题是,我不希望段落标记实际出现在匹配结果中。这就是为什么我尝试使用“向前看”和“向后看”…这几乎就是我所需要的。我可以使模式与标记以及其中包含的内容相匹配。我遇到的问题是,我不希望段落标记实际出现在匹配结果中。这就是为什么我尝试使用“向前看”和“向后看”…我不知道“向后看”中不允许使用可变宽度模式。谢谢你提供的信息。是否可以将此标签与其他标签(如)结合使用?在某种程度上,*不会导致匹配。我不知道可变宽度图案在look behinds中是不允许的。谢谢你提供的信息。是否可以将此标签与其他标签(如)结合使用?在某种程度上,*不会导致匹配。