わんくま同盟ホーム わんくま同盟の最新記事 MyBlog    Ognac試行部屋   
Skip Navigation Links
ホームExpand ホーム

1 (有効なカンマを含むCSVの分離~Regex)
有効なカンマを含むCSVの分離~Regex 123 , "a , bb ,cc " , ' 漢字、ひらがな、カタカナ' , 備後国 ,上州 こういうデータがCSV形式で提供されることが、往々にしてあります。 ExcelなどのアプリケーションでCSV出力したとき、データとして","があったとき、"か'で括ることになっているのかもしれません。 受け取る側で、"か'を考慮して分離する必要があります。処理としては最初から読んでいき、Quateの出現回数の偶数奇数で有効カンマか否かの判定すれば、良いのですが、正規表現で実装してみました。 ここ 最後に ","が付かないとき、最後の項目を落とし勝ちです、肯定先読み(?=(,|$))で対処すると、1つのパターンで対処できます。 パターン = "\s*(?["']?)(?.*?)(?(a)\k)\s*(?=(,|$))" ・少し解説 切り出した単語は Group名 に格納されます。 "~" もしくは '~' もしくは {無冠}から{無冠} の区別は (?["']?) で判定します。 "か ' のいずれかが始まると、に値が格納されます。{無冠}の時は、は未確定で続行されます。 が確定しているときは(?(a)\k)が有効で、の種別で括った範囲が に格納されます。 が未確定のときは(?(a)\k)が無視されねので普通に に格納されます。


御託

ソース