我有一个由冒号分隔的CSV文件,但它包含用引号括起来的文本字段,它们本身包含几个冒号.
我想要一个简单的解决方案来获取数据字段,但是例如.在ruby中,split方法在每个冒号上分裂.
有没有匹配所有冒号的正则表达式,除了用引号括起来的那些?
鉴于:
str = 'foo:bar:"jim:jam":jar'
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
a = str.scan( /([^":]+)|"([^"]+)"/ ).flatten.compact
p a
#=> ["foo", "bar", "jim:jam", "jar"]
Run Code Online (Sandbox Code Playgroud)
或者你可以这样做:
a = []
str.scan( /([^":]+)|"([^"]+)"/ ){ a << ($1 || $2) }
p a
#=> ["foo", "bar", "jim:jam", "jar"]
Run Code Online (Sandbox Code Playgroud)
那些正则表达式说找到了
| 归档时间: |
|
| 查看次数: |
3395 次 |
| 最近记录: |