提取字符串数组中的字符串,将其拆分并放入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“]
,那么输出应该是
[“”,“”,“”]