【发布时间】:2014-03-12 17:24:38
【问题描述】:
我无法找出解析一组特定字符串的最佳方法。
我将遇到的一些字符串示例如下:
str = 'name[key1][key2][key3]'
str2 = 'name[key1]'
str3 = 'name'
以下是我希望摆脱字符串的各个数组:
arr1 = ['name', 'key1', 'key2', 'key3']
arr2 = ['name', 'key1']
arr3 = ['name']
如您所见,键是可选的,可以是变量计数。
我能做到的最接近的是:
>> str = 'name[key1][key2][key3]'
"name[key1][key2][key3]"
>> str.scan(/(.+?)(\[.+?\])/)
[["name", "[key1]"], ["[key2]", "[key3]"]]
所以,我总是可以在那个数组上做一个展平,然后用一个 gsub 来去掉括号,但我不想把它混在一起。我希望能够一口气完成它。我考虑只在括号处进行字符串拆分,但这似乎也有点像创可贴的方法。如果有人对我如何比正则表达式更好地完成这一点有想法,或者我如何使用我正在使用的方法正确地完成这一点,那就太好了!
【问题讨论】: