多行上的PHP正则表达式 ------------------开始--------------------- 拖车2 (雅虎) (高清) (华纳兄弟公司) (高清) = --------------结束----------------

多行上的PHP正则表达式 ------------------开始--------------------- 拖车2 (雅虎) (高清) (华纳兄弟公司) (高清) = --------------结束----------------,php,regex,Php,Regex,如何获取开始和结束之间的所有数据? 我尝试了以下方法,但没有结果。任何帮助都将不胜感激。谢谢 <table class="trailer"> ------------------Begin--------------------- <tbody><tr> <td class="newtrailer-text"> Trailer 2<br> </td></tr> <br> <b>(Yaho

如何获取开始和结束之间的所有数据? 我尝试了以下方法,但没有结果。任何帮助都将不胜感激。谢谢

<table class="trailer">

------------------Begin---------------------
<tbody><tr>
<td class="newtrailer-text">
Trailer 2<br>
</td></tr>
<br>
<b>(Yahoo)</b><br>
<b>(High Definition)</b><br>
<a href="http://playlist.yahoo.com/makeplaylist.dll?sid=107193280&amp;sdm=web&amp;pt=rd">(1080p)</a><br>
<a href="http://playlist.yahoo.com/makeplaylist.dll?sid=107193279&amp;sdm=web&amp;pt=rd">(720p)</a><br>
<a href="http://playlist.yahoo.com/makeplaylist.dll?sid=107193272&amp;sdm=web&amp;pt=rd">(480p)</a><br>
<br>
<b>(Warner Bros.)</b><br>
<b>(High Definition)</b><br>
<a href="http://pdl.warnerbros.com/wbmovies/inception/trl_3/Inception_TRLR3_1080.mov">(1080p)</a><br>
<a href="http://pdl.warnerbros.com/wbmovies/inception/trl_3/Inception_TRLR3_720.mov">(720p)</a><br>
<a href="http://pdl.warnerbros.com/wbmovies/inception/trl_3/Inception_TRLR3_480.mov">(480p)</a>=
--------------END----------------

</tbody></table>
$regex='#([^”]+)#si';
这是:小马,他来了。

但你的正则表达式是这样的:

([^“]+)
将只匹配第一次出现双引号的所有内容
。您的正则表达式指定第一个双引号必须出现在
标记之前,否则将找不到匹配项

相反,请尝试:

$regex = '#<td class="newtrailer-text">([^"]+)</tbody></table>#si';
$regex='#(.+)#siU';
if(预匹配($regex,$str,$m)){
echo$m[1];
}否则{
回声“不匹配”;
}
这是:小马,他来了。

但你的正则表达式是这样的:

([^“]+)
将只匹配第一次出现双引号的所有内容
。您的正则表达式指定第一个双引号必须出现在
标记之前,否则将找不到匹配项

相反,请尝试:

$regex = '#<td class="newtrailer-text">([^"]+)</tbody></table>#si';
$regex='#(.+)#siU';
if(预匹配($regex,$str,$m)){
echo$m[1];
}否则{
回声“不匹配”;
}
$regex='#(.+)#Usi';
$regex='#(.+)#Usi';

您可以像这样使用非贪婪的RrgEx:

$regex = '#<td class="newtrailer-text">(.+)</tbody></table>#Usi';

您可以像这样使用非贪婪的RrgEx:

$regex = '#<td class="newtrailer-text">(.+)</tbody></table>#Usi';

你到底想实现什么?你想对数据做什么?(因为可能有更好/更干净的方法来实现相同的目标)。使用dom解析器而不是正则表达式。你到底想实现什么?你想对数据做什么?(因为可能有更好/更干净的方法来实现相同的目标)。使用dom解析器而不是正则表达式。谢谢你,我将研究dom解析器的+1,因为它能更快地解释..在我的电视屏幕前用无线小键盘打字很糟糕;-)但是你真的应该使用U修饰符使regex ungreedy!@Kaii原则上你是绝对正确的。如果没有多次出现
,(如张贴的代码所示)尽管如此,这没有什么区别。尽管如此,警惕始终是受欢迎的。更新:)哦,我在迷你键盘上感觉到了你的痛苦。我曾经试着在手机上回答问题。然后慢度和自动更正被否决了。我不再这样做了。谢谢你,我会研究DOM parser的+1,因为它能更快地解释问题。用我的电视屏幕前的无线小键盘很糟糕;-)但你真的应该使用U修饰符使regex ungreedy!@Kaii你原则上绝对正确。如果没有多次出现
,(如发布的代码中所示)尽管如此,这没有什么区别。尽管如此,警惕始终是受欢迎的。更新:)哦,我在迷你键盘上感觉到了你的痛苦。我曾经试着在手机上回答问题。然后,由于速度慢和自动更正而投了反对票。我不再这样做了。