◀一般トップへ
  • 5869 コメントのエスケープ
    • 5872 Re:コメントのエスケープ
      • 5873 Re2:コメントのエスケープ
        • 5877 Re3:コメントのエスケープ
        • 5878 Re3:コメントのエスケープ
  • [5869] コメントのエスケープ sf 2007年02月24日 12:34

    コメント文字のエスケープをさせたいのですがどのように
    すればいいでしょうか?
    ・具体的には
    # ←行コメント
    \# ←コメントにしたくない
    • [5872] Re:コメントのエスケープ じゅうじ 2007年02月24日 18:10

      ▼ sfさん
      /([^\\]|^)#.*/k

      正規表現キーワードをONにして、設定します。
      # dd
      \# dd
      # dd
      \# dd
      ff # dd
      ff \# dd
      ff [# dd
      ff [\# dd
      ff '#f' dd
      ff '\#f' dd
      ff "#f" dd
      ff "\#f" dd
      • [5873] Re2:コメントのエスケープ sf 2007年02月24日 19:47

        ▼ じゅうじさん
        > ▼ sfさん
        > /([^\\]|^)#.*/k
        >
        > 正規表現キーワードをONにして、設定します。
        > # dd
        > \# dd
        > # dd
        > \# dd
        > ff # dd
        > ff \# dd
        > ff [# dd
        > ff [\# dd
        > ff '#f' dd
        > ff '\#f' dd
        > ff "#f" dd
        > ff "\#f" dd
        解答ありがとうございます。
        すみません。もう一点質問があります。
        この場合
        a#
        などとすると「a#」がコメントとして認識されるかと思います。
        正規表現を使って、前方不一致検索などの方法で指定することはできないでしょうか?
        (無ければあきらめます。)
        • [5877] Re3:コメントのエスケープ すい 2007年02月25日 13:03

          >正規表現を使って、前方不一致検索などの方法で指定することはできないでしょうか?
          >(無ければあきらめます。)

          私なら普通に正規表現キーワードに

          /#.*/k → コメント
          /\\#/k → テキスト

          の2個を定義しますね。
        • [5878] Re3:コメントのエスケープ じゅうじ 2007年02月25日 16:25

          ▼ すい君
          どうもありがとう。

          ▼ sfさん
          最初の Perl5 では、後方参照(後読み)は無いんですね。
          正規表現キーワードの優先順位に気をつけて、前方参照(先読み)。

          /\\#.*?(?!\\#)/k テキスト
          /\\#.*?(?=#)/k テキスト
          /\\#.*/k テキスト

          コメントスタイルの行型に、#を追加。
          (省略)
          ff \# ee [# dd
          ff [# ee \# dd
          ff \# ee [# dd #
          ff [# ee \# dd #
          ff \# ee [# dd \#
          ff [# ee \# dd \#
          ff \# ee \# dd [#