新手问题 新手求个正则表达式截取字符串

dume2007 · 2013年09月30日 · 最后由 small_fish__ 回复于 2013年09月30日 · 3384 次阅读
比如有个html字符串:
1、
<div id="content">
 some content
 content
</div>
<div id="content_end"></div>

2、
<div id="content">
  <div>some content</div>
 content
</div>
<div id="content_finish"></div>

现在我想截取Content内容,正则该怎么写?后面那个结束匹配能不能用或?
我这样匹配不到:  
/<div id="content">(.+?)<div id="content_end">|<div id="content_finish">/is

试试 Nokogiri,这个会比你用正则更靠谱!

/<div id="content">(.+?)(?:<div id="content_end">|<div id="content_finish">)/i

或者用 Nokogiri

require 'nokogiri'
Nokogiri::HTML(s).css('#content').first.content

受教了,多谢!

用正則應該很低效率吧?

5 楼 已删除

社区会考虑统计出被喜欢的次数吗,我发现#2 楼 @luikore 大哥基本每次都是高质量回复,这样可以看被喜欢的排名。。。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号