gpt4 book ai didi

ruby - Ruby中解析字符串然后存入数据库

转载 作者:太空宇宙 更新时间:2023-11-03 18:29:18 27 4
gpt4 key购买 nike

我想为两个不同的标签解析字符串,然后将每个标签存储在数据库中。我们称这些为 tag1 和 tag2。我有一个分隔符,“?#”是 tag1 和 tag2 之间的分隔符。

假设

t = "random text blah firsttag?#secondtag more blah"

目标:tag1 应该是“firsttag”,tag2 应该是“secondtag”,没有前后随机文本。每个都应该作为对象存储在数据库中。

我试过类似的东西:

t.split

但它返回

["random text blah firsttag", "secondtag more blah"]

并包含随机文本。当它到达任一方向的第一个空间时,如何让拆分停止?

如果字符串中有多个标记对,我希望它也能工作,例如,如果:

m = "random firsttag#?secondtag blah blah 1sttag#?2ndtag blah blah blah"

我对 ruby​​ 和 rails 都很陌生,所以非常感谢你在这方面的帮助!

最佳答案

您可以将正则表达式与拆分结合使用:

tags = t.match(/\S+\?#\S+/)[0].split('?#')

解释

首先让我们捕捉文本中有趣的部分,即 tag?#tag2。我们将为此使用正则表达式:

/\S+\?#\S+/

解释:

\S+ 捕获定界符(标记)前的非空白字符

\?# 捕获分隔符标记

\S+ 捕获所有尾随的非空白字符 (tag2)

该正则表达式的匹配项(我们使用 [0] 访问的是:

firsttag?#secondtag

然后我们只使用分隔符进行拆分,然后我们得到带有标签的数组。

干杯!

PS:我重新标记了帖子,因为它与 ruby-on-rails 无关。这只是普通的 ruby

关于ruby - Ruby中解析字符串然后存入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6564632/

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