php pcre-如何管理职位?
我的目标是找到h2和h2标记后的数据之间的数据。 仅找到与h2相关的数据 h2标记后的数据有时以div结束,有时以h2标记结束 正如我在第二种情况下所理解的,内部prce位置在h2标记内移动,因此php找不到第二个h2标记 我要警告你,因为它不是一种常规语言。相反,使用DOM操纵器,如。不过,我还是会回答你的问题 问题在于。*存在。正则表达式试图匹配字符串,这意味着它们总是尽可能多地匹配。在本例中,.*将匹配0个以上字符。这将一直到字符串的结尾,然后开始,直到找到表达式的下一部分php pcre-如何管理职位?,php,pcre,Php,Pcre,我的目标是找到h2和h2标记后的数据之间的数据。 仅找到与h2相关的数据 h2标记后的数据有时以div结束,有时以h2标记结束 正如我在第二种情况下所理解的,内部prce位置在h2标记内移动,因此php找不到第二个h2标记 我要警告你,因为它不是一种常规语言。相反,使用DOM操纵器,如。不过,我还是会回答你的问题 问题在于。*存在。正则表达式试图匹配字符串,这意味着它们总是尽可能多地匹配。在本例中,.*将匹配0个以上字符。这将一直到字符串的结尾,然后开始,直到找到表达式的下一部分 <?ph
<?php
$s = "<h2>1</h2>unstructed string1<h2>2</h2>unstructed string2<div>some data</div>";
preg_match_all("`<h2>(.*)</h2>(.*)(<h2|<div)`isU", $s, $m);
var_export($m);
?>
result is
array (
0 =>
array (
0 => '<h2>1</h2>unstructed string1<h2',
),
1 =>
array (
0 => '1',
),
2 =>
array (
0 => 'unstructed string1',
),
3 =>
array (
0 => '<h2',
),
)
<h2>(.*?)</h2>(.*?)(?=<\w+>)