我有一个需要用ruby解析的字符串,例如:
a = '"a,b","c,d","e,f"'
我将Postgres用作数据库,并使用以下命令返回不同的输出。
# example:
a = '"a,b","c,d","e,f"'
a.split('"')
#=> ["", "a,b", ",", "c,d", ",", "e,f"]
预期输出为["a,b" "c,d","e,f"]
答案 0 :(得分:3)
您可以将String#split
与正则表达式结合使用。
str = '"a,b","c,d","e,f"'
#=> "\"a,b\",\"c,d\",\"e,f\""
arr = str.split(/(?<="),(?=")/)
#=> ["\"a,b\"", "\"c,d\"", "\"e,f\""]
puts arr
"a,b"
"c,d"
"e,f"
正则表达式为:“匹配逗号,并在其后加上双引号((?<=")
是正向后看),然后加上双引号((?=")
是< em> positive lookahead )(实际上,对于给出的示例,只需要包含其中之一即可。)
答案 1 :(得分:1)
您的字符串似乎包含逗号分隔的值,因此您可以使用Ruby的CSV库:
require 'csv'
CSV.parse_line('"a,b","c,d","e,f"')
#=> ["a,b", "c,d", "e,f"]