正規表現がわからなすぎる!!!


VBAでパターンマッチングさせ、取得した文字列を配列に格納。って処理をやりたい。


というのは、wordpressのpostmetaテーブルには
値が配列で格納されている。

たとえば、こんな形。
a:3:{i:0;s:9:"不定休";i:1;s:12:"年中無休";i:2;s:14:"24時間営業";}

初めの
a:3

は、a=配列ですよ
3=要素は3つありますよ

ということらしい。

で、{}の中は";" で区切られた配列。

この1つの要素は。
i:0;
s:9:"不定休";

という2つがセットで、i=0はインデックス。
s:9:は文字列で9文字はいってます。ということ。

この要素を、中身だけ取得して、配列に収めたい。
つまり
str(3) = {"不定休","年中無休","24時間営業"}

という感じに変換したいのです。

そこで、""で囲まれた文字列をパターンマッチングして取得するのですが。
その正規表現がこれ。

\"(((\\\\\")|[^\"])*)\"


は????
なわけですよ。

でも、SAKURAエディタで検索すると、ばっちりヒットするので。
いたしかたなし。動くんだわ。

よっしゃ、これを使おうとりあえず。

でもvbaで書く場合は \" とはエスケープしないので。
ダブルクォーテーションをchr(34)で置き換えて、以下のように記述。

Chr(34) & "(((\\\\" & Chr(34) & ")|[^" & Chr(34) & "])*)" & Chr(34)


で、動いたからさ。結果オーライっ!!!
意味分かんないけども。