項目数が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})*[^"]*$))*$