fc2ブログ

コメントお返事

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

説明しましょう!


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

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

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


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

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

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


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

てな感じです。


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

スポンサーサイト



2017-05-03 : 雑談 : コメント : 1 : トラックバック : 0 :
コメントの投稿
非公開コメント

管理人のみ閲覧できます
このコメントは管理人のみ閲覧できます
2017-05-03 22:46 : : 編集
« next  ホーム  prev »

プロフィール

木星ペンギン

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

ゲーム

  • 箱庭の勇者たち(体験版)
  • ぼくらの大革命!

メールフォーム

wood_penguin@yahoo.co.jp

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

月別アーカイブ

広告

寄付(Donate)