1 件の投稿を表示中 (合計 10 個)
  • 作成者
    投稿
  • #9924
    Delフサ
    参加者

    こんにちは。

    プラグインから複数の文字列を同時に検索する方法はありますか?

    いくつかの行(複数の重複行)を同時にハイライトしたいのですが
    プラグインから複数の文字列を同時検索することはできるでしょうか?

    AAA
    BBB
    CCC
    DDD
    BBB
    AAA

    こういう文字列があったばあい
    AAAとBBBを、ハイライトさせたいということです。

    正規表現を使って「AAA|BBB」にして検索しようとしましたが
    行の文中に正規表現が含まれてしまっては誤動作するので
    困っています。

    目的は
    ここで要望のあったプラグインを作りたいと思っているからです。
    http://jp.emeditor.com/modules/newbb/viewtopic.php?topic_id=291&forum=2&post_id=1242

    よろしくお願いします。

    #9925
    Yutaka Emura
    キーマスター

    fusa 様

    いつも EmEditor Professional をお使いいただき、誠にありがとうございます。

    複数の行を検索することはできますが、残念ながら、複数行の場合は、強調表示されないという仕様になっています。

    将来は、複数行でも強調表示されるようにしたいですね。

    他にも何かご質問がございましたら、ご遠慮なくご発言ください。
    今後もよろしくお願い申し上げます。

    #9927
    gecca
    メンバー

    >行の文中に正規表現が含まれてしまっては誤動作する

    正規表現を””でエスケープしてみてはいかがでしょうか。
    それですぐに実現できるようになると思います。

    #9929
    Delフサ
    参加者

    江村さん、了解しました。
    ありがとうございます。

    geccaさん、するどいご指摘ありがとうございます。

    私もそう考えていたのですが
    正規表現自体をほとんど使わないので、
    やりかたがよくわかりません。

    正規表現フォーラムで聞くべきかもしれませんが話の続きと言うことで聞いてみます。

    メタキャラクタをエスケープすればいいんですよね。

    処理としては
    文字A→エスケープ文字A
    「エスケープ文字A|エスケープ文字B」を正規表現検索する
    とすればよいと思っています。

    これは江村さんにお聞きしたいところなのですが
    下記のページに紹介されている文字を、単純にエスケープするために置換してからパイプで連結すればいいのかな?

    正規表現のサンプル集を検索と置換に分けて説明つきで詳しく紹介します。~ お勉強編 ~
    http://hodade.adam.ne.jp/seiki/page.php?study_escape
    正規表現サンプル(エスケープが必要な文字)

    このページで紹介されている記号の中で
    「-」ハイフン、だけは、エスケープする必要がなさそうです。

    正規表現のメタキャラクタはたくさんありすぎる気がしているので、どれをエスケープすればいいのか、いまいちよくわからないところです。

    ご存じでしたら教えてください。

    Rubyという言語でしたら、正規表現ライブラリにescapeという機能があるそうですが、仕様は調べ切れていません。

    Delphiの正規表現ライブラリでescepe機能があるものなのどはわからないので、自作しようと思っています。

    #9932
    Yutaka Emura
    キーマスター

    gecca 様

    いつも EmEditor Professional をお使いいただき、誠にありがとうございます。

    “.”, “|”, “*”, “?”, “+”, “(“, “)”, “{“, “}”, “[“, “]”, “^”, “$” および “” については、 でエスケープする必要があります。

    また、Q と E で囲むと、その間の文字列はリテラルとして扱われ、エスケープする必要がなくなります。

    詳しくは、

    http://jp.emeditor.com/help/howto/search/search_regexp_syntax.htm

    をご参照ください。

    他にも何かご質問がございましたら、ご遠慮なくご発言ください。
    今後もよろしくお願い申し上げます。

    #9935
    Delフサ
    参加者

    いや、質問は、geccaさんというより、私ですよ。

    今回の件では
    QAAAE|QBBBE
    という文字列を正規表現として検索に与えると
    複数文字の検索ができそうですね。

    行に正規表現が含まれていてもこれで大丈夫のようですね。

    とても助かりました。

    ヘルプの「リテラル」という単語の意味がいまいち自然な感じではなさそうなきがしましたが、動作は理解できました。

    これでプラグインを作れます。

    もうすぐここで公開しておきます。
    http://delfusa.main.jp/delfusafloor/download/download_f.html

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

    #9936
    Yutaka Emura
    キーマスター

    fusa 様

    うまくいって良かったです。
    いつも EmEditor プラグインを作成していただき、ありがとうございます。
    今後もよろしくお願い申し上げます。

    #9939
    gecca
    メンバー

    fusaさん

    解決して良かったです。言葉少なめですみませんでした・・・。
    行にマッチするのであれば、”foo|bar”よりは”^foo|bar$”ですね。

    関係ないですが、後々作ろうと思っていたものが
    OpenFavoriteFileで実現されているようなので使ってみたいと思います。
    公開ありがとうございます。

    #9940
    Delフサ
    参加者

    江村さん、geccaさん

    こんばんは、

    AAAとBBBの行を検索する場合に

    ^QAAAE$|^QBBBE$|

    このような正規表現を指定することでうまくいっています。
    ありがとうございました。

    OpenFavoriteFileは、自分でも特によく使い便利です。
    複数ファイルの同時起動なんかにも対応していきたいですね。

    プラグインを作れるプラットホームが存在していて
    とても助かっています。

    自分のプラグインへの要望が書かれているのに、気がつかず2年か3年後に気がつくという事になってしまいましたが、プラグイン開発、がんばってみます。

    ではでは失礼します。

    #29233
    Yutaka Emura
    キーマスター

    Delフサ 様、gecca 様

    いつもお世話になっております。

    v19.9 beta (v19.8.91+) からは複数検索の機能 (連続検索) を追加しましたので、よろしければお試しください。

    よろしくお願いいたします。

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