◀一般トップへ
  • 3762 正規表現の色認識エラー?
    • 3763 Re:正規表現の色認識エラー?
      • 3766 Re2:正規表現の色認識エラー?
      • 3767 Re2:正規表現の色認識エラー?
        • 3768 Re3:正規表現の色認識エラー?
          • 3769 Re4:別の逃げ方
            • 3771 Re5:別の逃げ方
              • 3777 Re6:別の逃げ方
  • [3762] 正規表現の色認識エラー? MIE 2004年04月05日 11:55

    バグフィックス等は目を通してますが、既出でしたら申し訳ありません。

    ファイル名に使用できない文字を検索するために、以下のような正規表現を
    書いてみました。
    str.match(/[\\\/\:\,\;\*\?\"\<\>\|\s]/)

    • [3763] Re:正規表現の色認識エラー? MIE 2004年04月05日 12:01

      ▼ MIEさん
      > バグフィックス等は目を通してますが、既出でしたら申し訳ありません。
      >
      > ファイル名に使用できない文字を検索するために、以下のような正規表現を
      > 書いてみました。
      > str.match(/[\\\/\:\,\;\*\?\"\<\>\|\s]/)
      >
      すみません、途中で投稿してしまいました。
      これをsakuraエディタで書いたところ、ダブルクォテーションの
      ところから先が文字列認識されてしまい、以降の文字列認識が
      ずれてしまいます。
      (スクリプト動作上は問題ないのですが)
      これについて、サクラエディタ応援ページの正規表現キーワードに
      ある引用符用のキーワードを当てたところ、行の最後で文字列認識が
      終わりますが、他の個所で記述している正規表現の引用符で
      (他にも何箇所か書いてます)同様の症状が発生してしまいます。

      これについて、どうにか対応する方法はないでしょうか?
      • [3766] Re2:正規表現の色認識エラー? げんた 2004年04月05日 23:32

        >これをsakuraエディタで書いたところ、ダブルクォテーションの
        >ところから先が文字列認識されてしまい、以降の文字列認識が
        >ずれてしまいます。
        >これについて、どうにか対応する方法はないでしょうか?
        私は単純に行末にコメントを入れていますが.(他人のコードを見る時は使えませんが)

        Perlで
        if( /"/ ){ #" ←調整用
        $a = $'; #' ←調整用
        }
        てな感じで.
      • [3767] Re2:正規表現の色認識エラー? すい 2004年04月06日 02:36

        >> ファイル名に使用できない文字を検索するために、以下のような正規表現を
        >> 書いてみました。
        >> str.match(/[\\\/\:\,\;\*\?\"\<\>\|\s]/)
        >>
        >これをsakuraエディタで書いたところ、ダブルクォテーションの
        >ところから先が文字列認識されてしまい、以降の文字列認識が
        >ずれてしまいます。
        >(スクリプト動作上は問題ないのですが)
        >これについて、サクラエディタ応援ページの正規表現キーワードに
        >ある引用符用のキーワードを当てたところ、行の最後で文字列認識が
        >終わりますが、他の個所で記述している正規表現の引用符で
        >(他にも何箇所か書いてます)同様の症状が発生してしまいます。

        \" タイプでしたら、正規表現キーワードの内容を以下のように修正すれば
        きちんと \" を識別してくれるかと。

        キーワード:/"(|.*?[^\\])(\\\\)*"/k
        色 指 定:ダブルクォーテーション文字列

        キーワード:/'(|.*?[^\\])(\\\\)*'/k
        色 指 定:シングルクォーテーション文字列
        • [3768] Re3:正規表現の色認識エラー? すい 2004年04月06日 02:51

          >キーワード:/"(|.*?[^\\])(\\\\)*"/k
          >色 指 定:ダブルクォーテーション文字列
          >
          >キーワード:/'(|.*?[^\\])(\\\\)*'/k
          >色 指 定:シングルクォーテーション文字列

          あ、だめた。↑これだけだと

          str.match(/[\\\/\:\,\;\*\?\"\<\>\|\s]/) "AB
          D"

          みたいな場合に \" ~ " が文字列扱いになってしまうのか。
          全体が "~" で括られているわけではないのですね。

          という事で上記2個の他に、以下の2個を追加してみてください。(^^;)

          キーワード:/\\"/k
          色 指 定:テキスト

          キーワード:/\\'/k
          色 指 定:テキスト
          • [3769] Re4:別の逃げ方 すい 2004年04月06日 03:16

            >>キーワード:/"(|.*?[^\\])(\\\\)*"/k
            >>色 指 定:ダブルクォーテーション文字列
            >>
            >>キーワード:/'(|.*?[^\\])(\\\\)*'/k
            >>色 指 定:シングルクォーテーション文字列
            >
            >キーワード:/\\"/k
            >色 指 定:テキスト
            >
            >キーワード:/\\'/k
            >色 指 定:テキスト

            ↑この4個を定義する方法とは別に
            ↓以下の3個を定義するという逃げ方もありですかね。こっちの方がずっと面白いんですが。

            キーワード:/"(|.*?[^\\])(\\\\)*"/k
            色 指 定:ダブルクォーテーション文字列

            キーワード:/'(|.*?[^\\])(\\\\)*'/k
            色 指 定:シングルクォーテーション文字列

            キーワード:/\/(|.*?[^\\])(\\\\)*\//k
            色 指 定:強調キーワード1

            上の方の4個キーワード定義する場合と上の2個のキーワードが同じで
            最後の1個のキーワードのみが異なります。
            最後の1個を「強調キーワード1」にしてありますが、実際に色々試してみて
            自分の好きな色を指定するとよいでしょう。
            「テキスト」にして見た目わからなくするのもよし。
            「正規表現キーワード1」とかにして独自色にするもよし。
            • [3771] Re5:別の逃げ方 MIE 2004年04月06日 05:44

              ▼ すいさん
              > >>キーワード:/"(|.*?[^\\])(\\\\)*"/k
              > >>色 指 定:ダブルクォーテーション文字列
              > >>
              > >>キーワード:/'(|.*?[^\\])(\\\\)*'/k
              > >>色 指 定:シングルクォーテーション文字列
              > >
              > >キーワード:/\\"/k
              > >色 指 定:テキスト
              > >
              > >キーワード:/\\'/k
              > >色 指 定:テキスト
              >
              > ↑この4個を定義する方法とは別に
              > ↓以下の3個を定義するという逃げ方もありですかね。こっちの方がずっと面白いんですが。
              >
              > キーワード:/"(|.*?[^\\])(\\\\)*"/k
              > 色 指 定:ダブルクォーテーション文字列
              >
              > キーワード:/'(|.*?[^\\])(\\\\)*'/k
              > 色 指 定:シングルクォーテーション文字列
              >
              > キーワード:/\/(|.*?[^\\])(\\\\)*\//k
              > 色 指 定:強調キーワード1
              >
              > 上の方の4個キーワード定義する場合と上の2個のキーワードが同じで
              > 最後の1個のキーワードのみが異なります。
              > 最後の1個を「強調キーワード1」にしてありますが、実際に色々試してみて
              > 自分の好きな色を指定するとよいでしょう。
              > 「テキスト」にして見た目わからなくするのもよし。
              > 「正規表現キーワード1」とかにして独自色にするもよし。

              正規表現をくくるほうは // ~ のコメントが認識されなかったので、
              \+引用符をテキスト認識するほうを使わせていただきました。
              (多分コメントフォーマットをもう一度上書きすれば使えると思いますが)
              よくよく考えればうまく認識しないのならちゃんとヒント与えれば
              動くんですよね(^^;

              どうもありがとうございます m(__)m
              • [3777] Re6:別の逃げ方 すい 2004年04月07日 01:45

                >正規表現をくくるほうは // ~ のコメントが認識されなかったので、
                >\+引用符をテキスト認識するほうを使わせていただきました。
                >(多分コメントフォーマットをもう一度上書きすれば使えると思いますが)

                // の行コメントという物がある言語ですか。
                「上書き」と言うか、コメントも正規表現キーワードで表示
                するようにすれば、とりあえずは逃げられるんですけどね。 (;^^;)
                (とりあえず // だけは(笑) )
                # 他に逃げられそうにない物が...

                >> キーワード:/"(|.*?[^\\])(\\\\)*"/k
                >> 色 指 定:ダブルクォーテーション文字列
                >>
                >> キーワード:/'(|.*?[^\\])(\\\\)*'/k
                >> 色 指 定:シングルクォーテーション文字列

                キーワード:/\/\/.*/k
                色 指 定:コメント

                ↑このキーワードだけは必ず↓このキーワードの上に定義する必要があります。
                他のキーワードは順序はどうでもよいのですが。

                >> キーワード:/\/(|.*?[^\\])(\\\\)*\//k
                >> 色 指 定:強調キーワード1