从纯字符串ruby获取字符串数组
我有一个字符串模式,如下所示从纯字符串ruby获取字符串数组,ruby,string,Ruby,String,我有一个字符串模式,如下所示 => "text1 http://www.domain.com/experiment_B_setup_diagram_image.png\n\nExperiments text2 http://www.domain.com/experiment_C_setup_diagram_image.png \nexperiment text3 http://www.domain.com/experiment_A_plotted_cha rt.png" 我想把url分
=> "text1 http://www.domain.com/experiment_B_setup_diagram_image.png\n\nExperiments text2 http://www.domain.com/experiment_C_setup_diagram_image.png \nexperiment text3 http://www.domain.com/experiment_A_plotted_cha
rt.png"
我想把url分开,然后一个接一个地串起来,输出应该是
> ["text1",
> "http://www.domain.com/experiment_B_setup_diagram_image.png",
> "\n\nExperiments", "text2",
> "http://www.domain.com/experiment_C_setup_diagram_image.png",
> "\nexperiment", "text3",........]
像单独的url及其前面或后面的字符串作为数组…有人能帮我吗?只要您不介意删除换行符(\n),您可以先将它们转换为空格,然后简单地在空格上拆分:
x = "text1 http://www.domain.com/experiment_B_setup_diagram_image.png\n\nExperiments text2 http://www.domain.com/experiment_C_setup_diagram_image.png \nexperiment text3 http://www.domain.com/experiment_A_plotted_chart.png"
x.tr("\n", " ").split(" ")
尝试使用:
.split(/\s|\n+/)
例如:
text="text1 http://www.domain.com/experiment_B_setup_diagram_image.png\n\nExperiments text2 http://www.domain.com/experiment_C_setup_diagram_image.png \nexperiment text3 http://www.domain.com/experiment_A_plotted_chart.png"
text.split(/\s|\n/)
返回:
["text1", "http://www.domain.com/experiment_B_setup_diagram_image.png", "", "Experiments", "text2", "http://www.domain.com/experiment_C_setup_diagram_image.png", "", "experiment", "text3", "http://www.domain.com/experiment_A_plotted_chart.png"]
你试过什么吗?不知道…我不擅长回答你应该试一下,这不是为我写代码的服务。请阅读“”和链接页面。“”也将帮助您。使用
\s+
就足够了,因为它的字符集中已经包含\n
。再看看它在中的定义,\s |\n+
可能没有做你认为它是做的事情。请看解释。这是一条很长的路。相反,使用带有split
的正则表达式来处理空格和换行符。OP提到它们不适合使用正则表达式,因此这是一种替代方法。正则表达式当然是次要的,但对于这个问题来说并不是完全必要的。