◀ANSI版開発トップへ
  • 5378 正規表現での複数行対応
    • 5379 Re:正規表現での複数行対応
    • 5380 Re:正規表現での複数行対応
      • 5381 Re2:正規表現での複数行対応
    • 5382 中途半端ですがパッチ作りました
    • 5383 Patchesにアップしました
    • 5386 PatchesにAssignをお願いします
  • [5378] 正規表現での複数行対応 なすこじ 2008年07月03日 03:46

    簡易的ではありますが、鬼車使用のまま複数行への対応を考えています。

    取りあえず検索とgrepは確認できましたが、マッチする箇所に問題があります。

    aaaaaaというテキストに対してaaaで検索した場合に何ヶ所にマッチするかという問題で、私としては4箇所にマッチして欲しかったのですが必死の過去ログ検索により2箇所が仕様という事が分かりました。

    これに引っかかっていまして、例えば、
    a
    a
    a
    a
    a
    a
    に対してa\r\na\r\naで検索すると、上からの検索は2箇所、下からは4箇所マッチします。
    これは、下からの複数行検索は「次の検索開始位置はマッチした文字列の終了位置から」という仕様の影響を受けないためですが、それを加味する様な修正も難しい感じです。

    で、いっそのこと正規表現での検索時は「次の検索開始位置はマッチした文字列の開始位置の次から」に変更してはどうだろうかと思うのですがまずいでしょうか?
    • [5379] Re:正規表現での複数行対応 なすこじ 2008年07月03日 10:09

      前言撤回。
      やはり既存動作を変更するのは面白くないので、
      “正規表現での検索時は「次の検索開始位置はマッチした文字列の開始位置の次から」”
      ではなく、
      “上からの検索且つマッチした文字列が複数行の場合「次の検索開始位置はマッチした文字列の開始位置の次行の行頭から」”
      にしようと思います。

      こうすれば横方向の動作を変更せずに縦方向の動作を統一できます。
      ただ、横方向の動作と縦方向の動作が違って分かりにくく感じるかもしれませんが……
    • [5380] Re:正規表現での複数行対応 神楽 2008年07月04日 08:32

      ▼ なすこじさん
      > 簡易的ではありますが、鬼車使用のまま複数行への対応を考えています。
      >
      > 取りあえず検索とgrepは確認できましたが、マッチする箇所に問題があります。

      Grepで改行をまたいでマッチした場合は、出力表示はどのようになるのでしょうか?
      • [5381] Re2:正規表現での複数行対応 なすこじ 2008年07月04日 19:39

        ▼ 神楽さん
        > Grepで改行をまたいでマッチした場合は、出力表示はどのようになるのでしょうか?

        現在は最初の行だけが出力されます。
        まだ骨組みを作っているような状態なので (^^;
    • [5382] 中途半端ですがパッチ作りました なすこじ 2008年07月07日 03:24

      「正規表現での複数行検索/Grep/置換対応(簡易版)」のパッチを作りました。

      ただし、まだ中途半端なので自サイトにアップしています。
      ダウンロードページの12
       http://www.geocities.jp/nasukoji_7/download/download_sakuraeditor.html

      サクラエディタに対応した正規表現ライブラリの鬼車を用いたまま複数行の検索/Grep/置換に対応します。
      複数行つなぎ合わせたバッファを正規表現ライブラリに渡す事で複数行に対応します。
      検索/Grep/置換ダイアログにて行数を指定して下さい。
      指定可能な行数は1~9999です。1を指定すると、ほぼ今までどおりの動作となります。
      (巨大な数字を指定しても遅くなるだけで意味は殆どありません)

      現状できること
      ・検索
      ・Grep
      ・置換(複数行時のすべて置換を除く)

      中途半端にできること(動作するが行数指定の方法を提供していないので前回値で動作する)
      ・正規表現インクリメンタルサーチ
      ・マクロによる正規表現検索/Grep

      できないこと(未設計)
      ・複数行時のすべて置換
      ・複数行時の検索文字列のカラーリング

      ご意見いただけると幸いです。
    • [5383] Patchesにアップしました なすこじ 2008年07月12日 00:10

      すべて置換に対応したところまででPatchsにアップしました。
      (ログインするのを忘れてしまったが……)

      Patches #2016120

      現状できること
      ・検索
      ・Grep
      ・置換

      中途半端にできること(動作するが行数指定の方法を
      提供していないので前回値で動作する)
      ・正規表現インクリメンタルサーチ
      ・マクロによる正規表現検索/Grep/置換

      できないこと(未設計)
      ・複数行時の検索文字列のカラーリング
    • [5386] PatchesにAssignをお願いします なすこじ 2008年07月16日 18:48

      CShareData.cppのバージョン番号の変更を忘れていたのでアップし直そうと思ったのですが、Submitteed Byがnobodyなためアップできなくなってしまったようです (^^;

      申し訳ありませんが、どなたか管理者権限で私にAssigned Toをしておいて頂けないでしょうか?

      宜しくお願いいたします m(_ _)m