項目数が3つの行(データ区切りのカンマが2つの行) を検索する。 CSVの形式は、5-1 CSVのデータを検索(VBのエスケープ方式)と同様。 検索前 検索後
1,2,3,4,5,6,7,8,9 1,2,3,4,5,"6","7" 1,2,"abcd,efg","a,bc","dd"""",""ee" "aaa,aa""c,cc",1,2,3 4,5,6,""","",""ab,""c,d""e,f" """vvv" ","",dddd""""""gg""" 555,"""""4444""",12345 555,"""""4444""",12345,"""""444""111" 1,2,3 1,2,3,4 "1,",2,3 "1,"",2",3 1,2,"3,4"
^(([^,]|,(?!(([^"]*"){2})*[^"]*$))*,(?=(([^"]*"){2})*[^"]*$)){2} ([^,]|,(?!(([^"]*"){2})*[^"]*$))*$
カンマでない、または、行末までにダブルコートが偶数個でないカンマ にマッチする正規表現と、 行末までにダブルコートが偶数個であるカンマ にマッチする正規表現 を組み合わせてます。 なお、項目数が4つの行(データ区切りのカンマが3つの行) を検索する正規表現は、こうなります。 ^(([^,]|,(?!(([^"]*"){2})*[^"]*$))*,(?=(([^"]*"){2})*[^"]*$)){3} ([^,]|,(?!(([^"]*"){2})*[^"]*$))*$