質問: csvファイルの読み込みを行っております。 csv_line.split(',')のようにしてデータの取り込みを行おうと思いましたが、 この方法ではカンマが含まれるテキストに対応出来ません。 そこで、「,」は区切り文字として扱うが、「\,」は区切り文字として扱わない という処理を行いたいです。 例えば、'1,2,3\,3,4'というテキストがあったら、 ['1', '2', '3\,3', '4']のように分割したいです。 「,」はマッチするが、「\,」はマッチしない正規表現をregexとすると、 re.split(regex, csv_line)で私の実現したいことが出来ます。 regexはどのように書けば良いでしょうか。 もしくは他に良い方法はありますでしょうか。 読み込む前のcsvのフォーマットも操作可能です。 以上宜しくお願い致します。
回答: 否定的戻り読みで素直に書くとこうなります。 ``` >>> import re >>> s = '1,2,3\,3,4' >>> re.split(r"(? hoge.csv $ cat hoge.csv "1","2","3,3","4" $ python >>> import csv >>> with open("hoge.csv", "r") as f: ... for row in csv.reader(f): ... print(row) ... ['1', '2', '3,3', '4'] ```