1 件の投稿を表示中 (合計 5 個)
  • 作成者
    投稿
  • #3886
    yapi
    メンバー

    はじめまして。

    いつもEmEditorを楽しく使わせていただいております。
    早速ですがお知恵を拝借したいと思っております。

    PHPの開発で使用させていただいているのですが、
    色分け設定をカスタマイズしたいと考えております。
    (構文ファイルを自作したいと思っております。)

    変数「$(数値or英数字or_)」は、青色。
    ただし、「$_POST」「$_GET」「$_COOKIE」は、赤といった様に、
    例外を設定したいと思っております。

    変数をHITさせるために以下のように書くと
    すべて変数がヒットしますが、
    ここから、例外をどうやって書くのが良いのかわかりません。
    $[a-zA-Z0-9_]+

    そもそも論として、PHPの構文ファイルを作成されている方がいるとか、
    正規表現のフォーラムではなく、その他のフォーラムが良い場合は、
    教えていただければ幸いです。

    よろしくお願いします。

    #3887
    FLONT
    参加者

    yapi様
    例外という解釈ではないですが、
    (?!$_(POST|GET|COOKIE)b)$w+
    これで大丈夫かと思います。

    ※ちなみに、「(?!$_(POST|GET|COOKIE)b)」は
    「$_POST」と「$_GET」と「$_COOKIE」で
    始まらないという意味の正規表現です。

    参考になれば幸いです。

    #3889
    yapi
    メンバー

    お返事が遅くなって申し訳ありません。

    非常に助かりました!
    最終的には、以下のように設定しました。
    (?!$_(SERVER|GET|POST|COOKIE|FILES|ENV|REQUEST|SESSION)b)$w+

    ありがとうございました!

    余談ですが、
    構文ファイルの書式の長さに限界があるようで、
    これに、$GLOBALSと$thisも対象外にしようとしたら
    切れてしまいました。
    これは、また、構文ファイルの事として、要望で上げてみようと思います。

    (?!$((_(SERVER|GET|POST|COOKIE|FILES|ENV|REQUEST|SESSION))|GLOBALS|THIS)b)$w+

    #3890
    FLONT
    参加者

    yapiさんは書きました:

    余談ですが、
    構文ファイルの書式の長さに限界があるようで、
    これに、$GLOBALSと$thisも対象外にしようとしたら
    切れてしまいました。
    これは、また、構文ファイルの事として、要望で上げてみようと思います。

    (?!$((_(SERVER|GET|POST|COOKIE|FILES|ENV|REQUEST|SESSION))|GLOBALS|THIS)b)$w+

    そうですね、いっぺんに書ければ非常に楽ですし、
    すっきりもしますからね。
    一応以下のようにすれば回避できますので、
    要望が通るまでの一時的にでも使ってみてください。

    先頭にアンダーバーあり:(?!$_(SERVER|GET|POST|COOKIE|FILES|ENV|REQUEST|SESSION)b)$_w+
    先頭にアンダーバーなし:(?!$(GLOBALS|THIS)b)$[lud]w+

    それでは。

    #3896
    yapi
    メンバー

    FLONTさんは書きました:
    先頭にアンダーバーあり:(?!$_(SERVER|GET|POST|COOKIE|FILES|ENV|REQUEST|SESSION)b)$_w+
    先頭にアンダーバーなし:(?!$(GLOBALS|THIS)b)$[lud]w+

    なるほど、確かに、こういう分け方だと出来ますね!
    さっそく、使わせていただきました。
    ありがとうございます。

    正規表現と言うものは面白いですね。
    今後も色々と考えてみようと思います。

    特に、以下(ヒアドキュメント)のような、「<<<」+「任意の英数字やアンダースコア」から始まり、
    上記任意の英数字やアンダースコアで終わる部分の
    色付けにチャレンジしてみようと思います。

    もちろん、本家でサポートしていただけると嬉しい限りですが。
    要望は既に上がってるようですね。

    【ヒアドキュメント例】
    $str = <<<EOT
    hoge
    hoge2
    EOT;

1 件の投稿を表示中 (合計 5 個)
  • このトピックに返信するにはログインしてください。