少し前に、vCard ファイルを処理するプログラムを作成しました。これは、次の方法でほぼ完全に実行できます。
(?<FIELD>[^\s:;]+)(;(?<PARAM>[^:]+))*:(?<CONTENT>.*(?>\r\n[ \t].*)*)$
ただし、これは新しい (2011 年 8 月) vCard 4.0 標準では機能しません。問題は、vCard 4.0 ファイルが次のレイアウトを使用することです。
FIELD(:)(;([PARAMETER]="[CONTENT],[MORE CONTENT]"(;))[DATATYPE(:)]:)CONTENT[newline]
例えば
ADR;type="home,work":(address)
ご覧のとおり、type="..." を含むパラメーター全体をキャプチャしたいと思います。
私の質問は次のとおりです。コードを変更できますか、または 2 つのプロセス (古いタイプ用と新しい 4.0 バージョン用の 1 つ。理想的には、両方をサポートしたい) を作成する必要がありますか? (ところで、私はc#と.net 4.0を使用しています)。
よろしく。