誤記の正規表現についてNo.16624
エルドラド さん 04/02/05 12:30
 
誤記の強調表示の一環として、
2文字以上の漢字の繰り返し(例:上記上記や東京都東京都など)を正規表現で検索
したいと思っています。

他のエディタでは、タグ付き正規表現を用いて、
([亜-K]+)\1
で検索できるのですが、秀丸では文法が異なるためうまくいきません。

いろいろ思案したのですが、いい方法が見つかりません。

何かいい方法があれば、ご教示ください。
よろしくお願いします。

[ ]
RE:16624 誤記の正規表現についてNo.16626
秀まるお2 さん 04/02/05 14:31
 
 タグ付き正規表現は秀丸エディタでも対応してはいますが、置換の時しか使え
ないです。

 現状で、特にこれといったいい方法が、僕にも思いつきません。

 昔と違って今は正規表現DLLを自前で作っているので、そこを適当に改良して
なんとかするって手はあろうかと思います。しかし、既存の秀丸方式タグ付き正
規表現(\fで区切るやり方)を捨てる訳にもいかないので、何か適当な独自文法
を考える必要があります。

 何かいい拡張方式か、あるいは現状の秀丸で対応する方法があれば教えてくだ
さい。>誰か詳しい方

[ ]
RE:16626 誤記の正規表現についてNo.16627
ENCODINGSHIFTJIS さん 04/02/05 14:44
 
秀丸エディタのマクロライブラリ
正規表現パワーアップDLL(BRegIf.DLL) v0.0.2.0
http://hide.maruo.co.jp/lib/macro/bregif5.html
を入れ、
メニュー>その他>動作環境>環境>正規表現>DLLの変更
で、設定を変更すると。

例:上記上記や東京都東京都など
に対して
(.+)\1
はヒットしました。

[ ]
RE:16627 誤記の正規表現についてNo.16628
エルドラド さん 04/02/05 15:10
 
>秀丸エディタのマクロライブラリ
>正規表現パワーアップDLL(BRegIf.DLL) v0.0.2.0
>http://hide.maruo.co.jp/lib/macro/bregif5.html


早速の情報ありがとうございます。
早速試してみたところ、こちらの環境(秀丸Ver4.10β13、XP Pro)
で所望の動作を確認できました!

ただ、他の正規表現を秀丸の文法に合わせて書いているので、
できれば、HMJRE.DLLを使えると助かります。

今後ともよろしくお願いします。







[ ]
RE:16627 誤記の正規表現についてNo.16629
エルドラド さん 04/02/05 15:39
 

>(.+)\1

内容とは無関係ですが、
引用すると、"."が見えるのに、
投稿された画面では"."が見えません??

[ ]
RE:16629 誤記の正規表現についてNo.16630
たけのこ さん 04/02/05 15:48
 
一般ユーザのたけのこです。

> 引用すると、"."が見えるのに、
> 投稿された画面では"."が見えません??

見えないんではなく、見えにくいんだと思います。

以下、お使いのブラウザがIEだとしたら……
ツールメニューのインターネットオプションで、『全般』タブの『フォント』ボ
タンを押して『Webページフォント』を“MSゴシック”などの等幅フォントに代
えてみるといいです。

(^^)/”

[ ]
RE:16628 誤記の正規表現についてNo.16631
ENCODINGSHIFTJIS さん 04/02/05 15:57
 
一般に正規表現の微妙な違いは漢字コードの変種より多いでしょう。
現状はそうなので、ソフトごとの対応になってしまいます。

秀丸 for dotNET あたりの未来になれば安定するかもしれませんが。

[ ]
RE:16628 誤記の正規表現についてNo.16633
秀まるお2 さん 04/02/05 17:54
 
> ただ、他の正規表現を秀丸の文法に合わせて書いているので、
> できれば、HMJRE.DLLを使えると助かります。

 少々強引なマクロを作ってみました。これでとりあえず、HmJre.dllを普段使
いつつも、必要な時だけ"(.+)\1"での検索が出来ます。

 (BRefIf.dllをそのままBRefIf.dllというファイル名前で使う場合の例)

    openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
    writeregstr "JreDll", "BrefIf.dll";
    envchanged;
    searchdown "(.+)\\1", regular;
    writeregstr "JreDll", "HmJre.dll";
    envchanged;

[ ]