gpt4 book ai didi

ruby-on-rails - 如何从ruby中的字符串中拆分值

转载 作者:数据小太阳 更新时间:2023-10-29 08:32:03 24 4
gpt4 key购买 nike

此处列出了我的示例字符串。我想将每个值结果拆分为数组或散列以处理每个元素的值。

<div id="test">
accno: 123232323 <br>
id: 5443534534534 <br>
name: test_name <br>
url: www.google.com <br>

</div>

我如何获取散列或数组中的每个值。

最佳答案

使用正则表达式很容易:

s = '<div id="test">
accno: 123232323 <br>
id: 5443534534534 <br>
name: test_name <br>
url: www.google.com <br>

</div>'

p s.scan(/\s+(.*?)\:\s+(.*?)<br>/).map.with_object({}) { |i, h| h[i[0].to_sym] = i[1].strip }

或者您可以像 ([a-z]+) 这样精确地输入您的键(accno、id、name、url)如果它们只包含小写字母:

 p s.scan(/\s+([a-z]+)\:\s+(.*?)<br>/).map.with_object({}) { |i, h| h[i[0].to_sym] = i[1].strip }

结果:

 {:accno=>"123232323", :id=>"5443534534534", :name=>"test_name", :url=>"www.google.com"}

更新

如果是:

<div id="test"> accno: 123232323 id: 5443534534534 name: test_name url: www.google.com </div>

正则表达式将是:

 /([a-z]+)\:\s*(.*?)\s+/

([a-z]+) - 这是散列键,它可能包含 -_ ,然后像这样添加它:([a-z]+\-_) .该方案假定在键后跟: (可能有空格)然后是一些文本直到空格。或者 (\s+|<)如果行末尾没有空格:url: www.google.com</div>

关于ruby-on-rails - 如何从ruby中的字符串中拆分值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23535800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com