正则表达式问题-在抓取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