こちらのサイトを参考に
http://www.tinybeans.net/blog/2012/06/16-075413.html
1行ずつ取り出して、処理をしようと、努力はしたものの、挫折しております。
追加プラグインなしで1行ずつのデータが取り出せればそれでOKです。
変数 data に
abc[\n]
def[\n]
ghi[\n]
の値が入っていて
loop開始
1回目で abc が取り出せる。
2回目で def が取り出せる。
3回目で ghi が取り出せる。
loop終了
の処理をお教えください。
は・・正規表現は難しい・・・。
URLでも可ですが、ここを参考にして作成する等々の時には、ポイント比率を下げさせていただきます。
mt:Var name="data" regex_replace="/[^\n]/g","" count_characters="1" setvar="length"
区切り文字(今回は\n)以外を消して、残った文字を数えれば要素数。
変化の流れ abc[\n]def[\n]ghi[\n] → [\n][\n][\n] → 3つ → 変数lengthに3を入れる
※参考サイトは末尾に,がないためcat=","で一つ付け加えてますが、今回は末尾に\nがあるのでcat="\n"は不要です
mt:Var name="data" regex_replace="/^([^\n]+).*/s","$1" setvar="value" mt:Var name="data" regex_replace="/^([^\n]+\n?)(.*)/s","$2" setvar="data"
s修飾子を付けることで.に改行コードを含めるように指示します。
s修飾子が無い場合は改行コードでちょん切れてしまいます。
環境がなくて動かせてないのですが、要点だけ回答させてもらいました。
----以降追記
ループ1回目
mt:Var name="data" regex_replace="/^([^\n]+).*/s","$1" setvar="value"
"/^([^\n]+).*/s"に"abc[\n]def[\n]ghi[\n]"が与えられると次の二つのパーツに切り分けられます。
^[^\n]+ | 先頭から続く\n以外の文字列 | abc |
.* | 後続の文字列 | [\n]def[\n]ghi[\n] |
(かっこ)で囲まれている部分は後ろの処理で使えるように記憶され、
(かっこ)の登場順に$1,$2…で利用することができます。
かっこは([^\n]+)の一組だけなので$1にはabcが入ります。
流れとしては"abc[\n]def[\n]ghi[\n]"を"abc"に置き換えた後、変数valueに格納となります。
mt:Var name="data" regex_replace="/^([^\n]+\n?)(.*)/s","$2" setvar="data"
"/^([^\n]+\n?)(.*)/s"に"abc[\n]def[\n]ghi[\n]"が与えられると次の二つのパーツに切り分けられます。
^[^\n]+\n? | 先頭から最初に出てくる\nまでの文字列 | abc\n |
.* | 後続の文字列 | def[\n]ghi[\n] |
(かっこ)は二組あるので順に"abc\n"が$1、"def[\n]ghi[\n]"が$2に入ります。
流れとしては"abc[\n]def[\n]ghi[\n]"を"def[\n]ghi[\n]"に置き換えた後、変数dataに格納となります。
これが繰り返されることによりループの中で徐々に変数dataが削られていく形になり最後には空になります。
ループ2回目
mt:Var name="data" regex_replace="/^([^\n]+).*/s","$1" setvar="value"
"def[\n]ghi[\n]" → 変数value="def"
mt:Var name="data" regex_replace="/^([^\n]+\n?)(.*)/s","$2" setvar="data"
"def[\n]ghi[\n]" → 変数data="ghi[\n]"
ループ3回目
mt:Var name="data" regex_replace="/^([^\n]+).*/s","$1" setvar="value"
"ghi[\n]" → 変数value="ghi"
mt:Var name="data" regex_replace="/^([^\n]+\n?)(.*)/s","$2" setvar="data"
"ghi[\n]" → 変数data=""
変数名がfavoriteのままだったので、修正を行い、蛇足のくどい説明も付け足しました。
2013/09/14 02:11:18