これは役立つかもしれません:
irb(main):001:0> mystring
=> "(1, 'data, ', 'data_two, ', 'Test 34', '', 'gb', 1, '1')"
irb(main):002:0> mystring.scan(/(?:'(?:\\.|[^'])*'|[^,' ])+/)
=> ["(1", "'data, '", "'data_two, '", "'Test 34'", "''", "'gb'", "1", "'1')"]
または、引用符と中括弧を削除する必要がある場合は、次のようにします。
irb(main):003:0> mystring.scan(/([^', ()]+)|'([^']*)'/).flatten.compact
=> ["1", "data, ", "data_two, ", "Test 34", "", "gb", "1", "1"]
これは、引用符/ブレース/コンマ/スペース文字以外の単語、または単一の「引用符」内のすべてのものと一致します。(最初の例とは異なり、2 番目の例ではエスケープ シーケンス ( \x) が考慮されていないことに注意してください。ただし、そのような複雑な処理は必要ない場合もあります。)