提取字符串数组中的字符串,将其拆分并放入Ruby中的新数组?
假设我有一个字符串数组,如下所示:提取字符串数组中的字符串,将其拆分并放入Ruby中的新数组?,ruby,Ruby,假设我有一个字符串数组,如下所示: arr = ["\n<start>\n<exposition> <conflict> <escape> <conclusion>\t;\n", "\n<exposition>\n<bad-guy> <insane-plan>\t;\n", "\n<conflict>\n<friendly-meeting> <
arr = ["\n<start>\n<exposition> <conflict> <escape> <conclusion>\t;\n",
"\n<exposition>\n<bad-guy> <insane-plan>\t;\n",
"\n<conflict>\n<friendly-meeting> <female-interest> <danger>\t;\n"]
newArr = ["<start>",
"<exposition> <conflict> <escape> <conclusion>",
"<exposition>",
"<bad-guy> <insane-plan>",
"<conflict>",
"<friendly-meeting> <female-interest> <danger>"]
我是Ruby新手,我尝试使用
for
循环来迭代数组,但它似乎会消除所有Unix行结尾,然后我没有分隔符来分割字符串,在arr
中的字符串中,它们还有两个额外的字符\t代码>删除。只需使用一些正则表达式即可:
arr.join.split /[\n\t;]+/
这里,我将字符串数组合并成一个字符串,并根据多种条件(换行符、制表符和分号)将其拆分。单向,不太美观arr.map{s.scan(/\n(\)\n/)+s.scan(/(\)\t\\n/)}.flatten
@sagarpandya82有点混淆了scan()
中的内容。。。。。你能给我解释一下吗?请等有人回答(解释)。scan()
中的正则表达式正在根据您的规范抓取字符。如果您不熟悉正则表达式(如果不熟悉,请抱歉),请检查:作为初学者。@sagarpandya2您的解决方案非常好,为什么不回答它?请更具体地说明分号的处理方法。例如,数组[“;\n;\t”]
的返回值应该是多少?@Cyzenfar如果有两个,该怎么办\n
在这里?例如,像“[”\n\n;\n;\n“]
,那么输出应该是[“”,“”,“”]