正規表現を使った連続置換ができないNo.04349
飛田敏博 さん 99/10/28 15:34
 
とあるメーリングリストで「秀丸エディタ」のことが話題になりまして、そのメン
バーから下記のような要望を受けました。以下、その内容です。


実は、私は秀丸を使う前、つまりDOSの時にはMIFESを使っていました。DOSでは最
も名の売れたエディタですから、ご存じかと思います。で、今Windowsの世界になっ
ているのに、DOS窓を開いてMIFESを使わねばならないことがあります。つまり秀
丸にはできないことがあるのです。

正規表現を使った連続置換ができないということです。
秀丸のHELPから引用するなら、
>>検索には正規表現 が使えますが置換後の文字列には¥tと\n以外の
>>エスケープシーケンス は使えません。
つまり、○の後には必ず何らかの漢字のあるところを検索し、その○を☆に換えたい
とき。MIFESならば、'○{[亜-熙]}を検索し☆\1に置き換えるというコマンドで可能
なのですが、秀丸では、その漢字を元のママにするということができないでしょう。
これが問題なのです。結構必要なんですよね、私の仕事では。このような作業が。

秀丸でもマクロを組んだりして、バリバリ使っているんですが、これができないだけ
で、DOS-MIFESを手放せないでいます。


というような内容です。私も彼も秀丸の長年の愛用者でありまして、ぜひこの要望へ
の対応をご検討いただけたらと思います。

[ ]
RE:04349 正規表現を使った連続置換ができNo.04350
プックン さん 99/10/28 16:17
 
飛田敏博さん はじめまして。

秀丸v3.0から飛田敏博さんが、実施したい動作は秀丸でできます。

"JRくん"がまとめてくれているHPを参考にしてください。

秀丸エディタQ&A集のページ
http://win.blue.co.jp/~jr-kun/hidemaru_qa/index.html

タグ付き正規表現とは?

>秀丸の Ver.3.0 で「タグ付き正規表現」がサポートされる事になりました。
>これにより検索でヒットした文字列の一部又は全体を、置換文字列の一部又は全体
>として利用できるようになりました。ただし「正規表現」自体が解らないと、さっ
>ぱり意味が通じなくなるので、「タグ付き正規表現」を自在に操りたい人はまず
>「正規表現」を使いこなせるようにしましょう(^^)。

置換え元文字
○\f[亜-熙]+
置換え後文字
☆\1

マクロだったら
replaceallfast "○\\f[亜-熙]+" ,"☆\\1" ,regular;


----
○ABV
○秀丸D D
○秀夫■
○123

置換え後
○ABV
☆秀丸D D
☆秀夫■
○123


[ ]
RE:04349 正規表現を使った連続置換がでNo.04351
ひろ さん 99/10/28 19:09
 
 飛田敏博さん今日は、ひろです。
> つまり、○の後には必ず何らかの漢字のあるところを検索し、その○を☆に換えたい
> とき。MIFESならば、'○{[亜-熙]}を検索し☆\1に置き換えるというコマンドで可能
> なのですが、秀丸では、その漢字を元のママにするということができないでしょう。
> これが問題なのです。結構必要なんですよね、私の仕事では。このような作業が。
>
> 秀丸でもマクロを組んだりして、バリバリ使っているんですが、これができないだけ
> で、DOS-MIFESを手放せないでいます。
 以前から上記の操作なら macro を使えば出来ましたが、現在の最新版
Ver.3.0x なら置換作業のみで比較的簡単に行えます。ただし動作環境が
Windows95/98, WindowsNT4.0 ですので、それ以前の version の Windows で
は利用できません。

 詳しくは秀丸 help の「タグ付き正規表現による置換について」を見てい
ただくとして、上記様な場合、
検索文字列:○\f[亜-K]
置換文字列:☆\1
で出来ます。

[ ]
RE:04351 正規表現を使った連続置換がでNo.04352
飛田敏博 さん 99/10/28 19:26
 
プックンさん、ありがとうございました。MLで下記のメールがありましたので、代
理UPします。



飛田殿へ
いやぁ、お手を煩わしてしまいました。

>すでにご存じかと思いますが、秀シリーズのサポートフォーラムで
>秀丸エディタの情報交換が行われています。(下記アドレス)
>http://www.maruo.co.jp/hidesoft/2/index.html

さっそく、上記を見てきましたら、既にレスがついていました。
で、結果、すでにこの機能は使えるんじゃないですか。びっくり。
しかし、ヘルプにはそんなこと書いていないぞぉ。
が、うれしい限りです。
私の秀丸は3.01でしたので、テストしてみましたら、できましたできました。
\(^o^)/\(^o^)/\(^o^)/\(^o^)/\(^o^)/\(^o^)/

これはもっと声を大にして言っておかなければならない機能ですよ。
って、私が不勉強だっただけかなぁ。(^^ゞ
Niftyの秀丸のフォーラムも見ているんだけどな。

飛田さん、非常に感謝いたします。
もし秀まるおさんからご連絡があったらよろしくお伝えください。



以上です。ありがとうございました。

[ ]
RE:04352 正規表現を使った連続置換がでNo.04353
KITA さん 99/10/29 08:57
 
>しかし、ヘルプにはそんなこと書いていないぞぉ。

あれ?読んだ記憶があるぞぉ
・・・・
HELP - 検索系コマンド - タグ付き正規表現 にしっかと
書いてますよ〜。 (^-^)

[ ]