首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符串拆分为散列数组,并在Ded示波器上使用数据

将字符串拆分为散列数组,并在Ded示波器上使用数据
EN

Stack Overflow用户
提问于 2014-01-22 13:19:11
回答 1查看 59关注 0票数 0

我有一个字符串,如下所示:

代码语言:javascript
复制
lorep ipsum <a href="#" class="link-1">dolor sit</a>amet, consectetur <a href="#" class="link-2">adipiscing</a> elit.

我需要将它分割成片段,但是在锚内保存片段的链接类。如此完美的结果将是:

代码语言:javascript
复制
['lorep ipsum ', {'link-1' => 'dolor sit'}, 'amet, consectetur', {'link-2' => 'adipiscing'}, ' elit.']<br />

或者:

代码语言:javascript
复制
['lorep ipsum ', ['link-1', 'dolor sit'], 'amet, consectetur', ['link-2', 'adipiscing'], ' elit.']

我试过使用以下代码:

代码语言:javascript
复制
string.split(/<[^>]>/)

但是它只返回一个片段数组。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-22 13:32:15

我会用Nokogiri

代码语言:javascript
复制
require 'nokogiri'

doc = Nokogiri::HTML.parse <<-eot
lorep ipsum <a href="#" class="link-1">dolor sit</a>amet, consectetur <a href="#" class="link-2">adipiscing</a> elit.
eot

ary = doc.search("//a").flat_map do |n,a|
   [n.previous_sibling.text.strip,{n['class'] => n.text.strip},n.next_sibling.text.strip]
end.uniq

p ary

输出

代码语言:javascript
复制
["lorep ipsum", {"link-1"=>"dolor sit"}, "amet, consectetur", {"link-2"=>"adipis
cing"}, "elit."]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21284054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档