正则表达式问题-在抓取HTML段时

正则表达式问题-在抓取HTML段时,html,regex,Html,Regex,我正在尝试使用正则表达式在锚之间刮取内容 在下面的HTML段中突出显示“”和“”: 但是当我尝试这个正则表达式时,它没有返回任何结果 <h2>Highlights<\/h2>\t?\n?\s?\S?(.*?)<\/div> 突出显示\t?\n?\s?\s(.* 我认为这可能与HTML源代码中的空白有关 任何正则表达式大师都能给我一个神奇的表达式来抓取任何给定HTML Archor之间的所有内容,比如上面提到的那些(也可以处理HTML源代码中的任何空白) 顺

我正在尝试使用正则表达式在锚之间刮取内容
在下面的HTML段中突出显示“
”和“
”:

但是当我尝试这个正则表达式时,它没有返回任何结果

<h2>Highlights<\/h2>\t?\n?\s?\S?(.*?)<\/div>
突出显示\t?\n?\s?\s(.*
我认为这可能与HTML源代码中的空白有关

任何正则表达式大师都能给我一个神奇的表达式来抓取任何给定HTML Archor之间的所有内容,比如上面提到的那些(也可以处理HTML源代码中的任何空白)

顺便说一句,我不能使用任何PHP代码,因为正则表达式用于我购买的脚本(只有一个文本框我必须输入正则表达式)

非常感谢

HTML段:

<div id="Highlights">

      <h2>Highlights</h2>

      <ul>

<li>1234</li>

<li>abc def asdasd asdasd</li>

<li>asdasda as asdasdasdas </li>

<li>asdasd asdasdas asdsad asdasd asa</li>

</ul>


     </div>

     <div class="FloatClear"></div>

     <div id="SalesMarquee">

      <div id="SalesMarqueeTemplate" style="display: none;">

集锦
  • 1234
  • abc def asdasd asdasd
  • asdasda as asdasdas
  • asdasd asdasdas asdsad asdasd asa

使用任何HTML dom解析器,如

//从URL或文件创建DOM
$html=file\u get\u html('http://www.example.com/');
//查找所有链接
foreach($html->find('a')作为$element)
echo$element->href
';
同意Naveed-这里有一篇类似的帖子-

以下pcre正则表达式应该可以工作

/<h2>.*<\/h2>(.*)<\/div>/is
/.*(.*)/is
最后两个字符是i表示忽略大小写,s表示点全部模式。“点全部”模式也使点匹配换行符

编辑:您可能需要此正则表达式:

/<h2>Highlights<\/h2>(.*)<\/div>.*<div class="FloatClear">/is
/Highlights(.*)。*/is

尝试添加“m”修饰符(对于hlindset提供的正则表达式中的“multiline”:

/<h2>Highlights<\/h2>(.*)<\/div>.*<div class="FloatClear">/ism
/Highlights(.*)。*/ism
这就是它的作用:


所有修饰符的文档都可以通过谷歌搜索“pcre模式修饰符”获得。

谢谢hlindset,但它不起作用……我在这里尝试过:Rubular.com是用于Ruby正则表达式的,有一些不同。例如,你需要以/im而不是/is结尾,以使点匹配新行,如下所示:
/<h2>Highlights<\/h2>(.*)<\/div>.*<div class="FloatClear">/ism