「key=value,aaa=bbb,ccc=123」
コレをMapに復元し、キーに「aaa」を指定すると「bbb」が取得できる。まぁちょっとしたシリアライズですね。
そんな話題が@itの掲示板(java)に出ていました。
この手の処理を作るときに、方法としては以下の2種類を思いつきます。
- 正規表現でスマートに処理
- ガチでパーサを実装する
- 1と2のいいところどり
こういうときに私の場合「2.」で実装しちゃいます。理由は以下の2点。
- メンテできないと言い出す人がいる(正規表現を理解できない人結構いる)
- 仕様変更時に正規表現が複雑になる場合がある、または正規表現では困難
ありがちな問題として、「=」や「,」をデータに含めたい。その対策として、値を「"値"」のようにしたい。などと言れることがあるからです。
とはいえ、いまどきの.NETであればXMLSerializerでこの手の問題に発展することはないんですけどね。
0 件のコメント:
コメントを投稿