需要正则表达式HTML帮助

时间:2012-11-02 20:04:55

标签: ruby regex ruby-on-rails-3.2

我有一个HTML响应正文/字符串。这些html内容的一部分是这些字符串 -

<h2><a href="javascript:;" class="user-name-class">MY_USER_NAME<b></b></a></h2>

["media_detail","init",[false,"",null,true,1,4,"99999_XXXXX_99999",11836530,"00076f7474727febc37a8825d373a5be","\/p\/LdvJWSF-6b\/","\/accounts\/login\/"]],

从这些我需要提取MY_USER_NAME99999_XXXXX_99999

我很感谢regex rockstars的帮助。这是红宝石1.9.3。感谢。

更新:我们正在使用正则表达式,因为这不是实时完成的,因此性能不是问题。

3 个答案:

答案 0 :(得分:3)

第一个是HTML,所以你应该用HTML解析它而另一个是JSON,所以你可以使用一些JSON库。不要使用正则表达式。 It's evil

答案 1 :(得分:0)

如果您不想使用HTML / JSON库,可以使用以下代码获取第一个:

str.gsub!(/<.*?>/, '')

要正则表达第二个,你将不得不告诉我们更多关于字符串的格式......什么是一致的,什么不是,等等。

答案 2 :(得分:0)

您可以使用

s.split(/"user-name-class">/)[1].split(/</)[0]

(见this demo

s.split(/\["media_detail"/)[1].split(/\[/)[1].split(/"?,"?/)[6]

(见this demo