我希望用空格分割字符串(不安全的外行,如exim_mainlog行),但不要用双引号内的空格分隔,如果引号被\"
这样的反斜杠转义,则忽略如果只是像\\
那样进行转义,请忽略反斜杠。无需使用FSM手动缓慢解析字符串。
示例行:
U=mailnull T="test \"quote\" and wild blackslash\\" P=esmtps
应分为:
["U=mailnull", "T=\"test \\\"quote\\\" and wild blackslash\\\"", "P=esmtps"]
(顺便说一句,我认为红宝石应该有这种分裂的方法..,叹气)。
答案 0 :(得分:7)
我认为我找到了足够简单的解决方案:input.scan(/(?:"(?:\\.|[^"])*"|[^" ])+/)