我在Matlab(MacOSX)中使用regexp
尝试了picking commas outside quotes的解决方案
str='"This string has comma , inside the quotes", 2nd string, 3rd string'
我期待三个代币
"This string has comma , inside the quotes"
2nd string
3rd string
我使用了以下内容但获得了一个空解决方案
regexp(str, '\^([^"]|"[^"]*")*?(,)\')
ans =
[]
对于此,应该正确的regexp
语法。
答案 0 :(得分:3)
你可以
代码:
以逗号分隔,前面是偶数(可能为零)的双引号:
pos = find(~mod(cumsum(str=='"'),2)&str==','); %// step 1
result = mat2cell(str, 1, diff([0 pos numel(str)])); %// step 2
result(1:end-1) = cellfun(@(x) x(1:end-1), result(1:end-1), 'uniformoutput', 0); %// step 3