H5W3
当前位置:H5W3 > go > 正文

【go】如何将Python的正则式转换成Golang正则式?

我想用go写一个获取yyets.com上每天美剧更新列表的脚本,以前用Python实现过,现在想试下用go来写一个,我需要先获取当天的节目的HTML代码,写了一个函数,HTML代码在这里:

http://play.golang.org/p/XPXSXdLEDd

以前Python的正则是:

<td class="(cur|ihbg)">.+?<dt>1号</dt>(.+?)</dl>

我想先获取这一天的所有的<dd>字段。

拿到go里没法用,看了一些资料,仍然不得法,麻烦大家指点下。


我现在把Go的正则表达式改成了这样:

(?s)<td class=\"(cur|ihbg)\">.+?<dt>2号</dt>(.+?)</dl>

前面加了一个(?s),原因是使用.能匹配换行,这样之后,能找到了HTML代码了,但新的问题是这个式子把1号的内容也匹配到了,我想原因应该出在第一个.+?这里了。

下面又怎么做呢?


接着改成了这样:

(?s)<td class=\"(cur|ihbg)\">\s+<dl>\s+<dt>2号</dt>(.+?)</dl>

这样能匹配到了。

用正则解析html?不如用专门的工具。

例如,go语言的

  • html
  • go-html-transform
  • Gokogiri

回答

本文地址:H5W3 » 【go】如何将Python的正则式转换成Golang正则式?

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址