Appendix

広告

Entries

コメントお返事

> エクロウレ さん
こんにちは、いらっしゃいませ~

説明しましょう!


まず先に、なぜ .+ を使っていないのかについて。

例として、選択肢の文章が "はい if(s[1]) en(s[2])" だったとしましょう。
この場合、ifの条件が's[1]'enの条件が's[2]'とならなくてはなりません。

ですが、.+を使ってしまうと、ifの条件が's[1]) en(s[2]'となってしまいます。
これでは困るので文字列 ')' までの一致にしないといけません。


そこで [^\)] が出てきます。

\) はこの二つで文字列 ')' を表します。
なので正規表現の () とは別物です。

[^ ] が「カッコ内に含まれるもの以外」となるので、この場合「文字列 ')' 以外」となります。


[^\)]+ ... 文字列 ')' 以外で最長一致
([^\)]+) ... 上記を後方参照
if\(([^\)]+)\) ... 文字列 'if('')' の間の文字列を後方参照

てな感じです。


たぶん、これであってるはず…
正直、条件の書き方を <if:s[1]> とかにすればよかったなあとは今更思ってます。

スポンサーサイト
この記事にトラックバックする(FC2ブログユーザー)
http://woodpenguin.blog.fc2.com/tb.php/262-40edf857

トラックバック

コメント

[C291] 管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

Appendix

プロフィール

木星ペンギン

Author:木星ペンギン
ほぼツクールのことばかり書いてます。
名前は↑から取りました。
木製ですが木星です。
トカゲは関係ありません。

ゲーム

  • 箱庭の勇者たち(体験版)
  • アクイ ト アイ
  • ぼくらの大革命!
  • 勇者がやらねば俺がやる!
  • 3Turn Battle!
  • 3TurnBattle!2nd 体験版

メールフォーム

wood_penguin@yahoo.co.jp

名前:
メール:
件名:
本文: