4

我想用空格分割一个字符串(不安全的外行,如 exim_mainlog 行),但不是用双引号内的空格,如果引号被反斜杠\"转义则忽略,如果它只是转义则忽略反斜杠喜欢\\。无需使用 FSM 手动缓慢解析字符串。

示例行

U=mailnull T="test \"quote\" and wild blackslash\\" P=esmtps

应拆分为

["U=mailnull", "T=\"test \\\"quote\\\" and wild blackslash\\\"", "P=esmtps"]

(顺便说一句,我认为红宝石应该有这种分裂的方法......,叹息)。

4

1 回答 1

8

我想我找到了足够简单的解决方案:input.scan(/(?:"(?:\\.|[^"])*"|[^" ])+/)

于 2012-10-24T00:28:05.073 回答