はじめまして 任意文字の置換No.10280
RED さん 01/11/14 09:39
 
はじめまして、REDといいます。

秀丸を 愛用させて頂いて 5年ほどたちますが あまり、込み入った使い方をして
おりません。

で、質問ですが、置換で下記のようにルビを振っているのですが 別の 全文検索に
入れる場合指定で、ルビを全部とり、したに仮名を全部振る方式に変わりました。
で、<>をふくみ 任意の文字も 置換できる方法はないものでしょうか

ヘルプで . * など 色々使ってみましたが わかりませんでした。
宜しくお願いします

 


昔<いにしゑ>の   

これから


いにしゑの  

[ ]
RE:10280 はじめまして 任意文字の置換No.10283
tatuto さん 01/11/14 10:09
 
tatutoです。

RED<36xxxxxxxxxxxxxx@maruo.co.jp>さんより適座引用しています。

>例
>昔<いにしゑ>の   
>
>これから
>
>昔
>いにしゑの  

タグ付き正規表現で可能かと
.*\f<\f.*\f>\f.*
\0\n\3\5

[ ]
RE:10280 はじめまして 任意文字の置換No.10284
KITA さん 01/11/14 10:45
 
HELPを読みましょう。
検索系コマンド - タグ付き正規表現による置換について に書いてます。
#で、「\0\n\2\4」ですね (^^;


[ ]
RE:10280 はじめまして 任意文字の置換No.10289
TAKA さん 01/11/14 12:19
 
REDさん、こんにちは。TAKA と申します。

すでに、別の方からレスがあるようですが、

TEST<ABC>TEST<DEF>TEST
というようなデータでは、

TEST<ABC>TEST
DEFTEST
となって欲しいのでしょうか?それとも、

TEST
ABCTEST
DEFTEST
となって欲しいのですか?

後者なら、これ以降をお読み下さい。

TEST<A>TEST>TEST
というようなデータは、

TEST
ATEST>TEST
とします。

>で、質問ですが、置換で下記のようにルビを振っているのですが 別の 全文検索に
>入れる場合指定で、ルビを全部とり、したに仮名を全部振る方式に変わりました。
>で、<>をふくみ 任意の文字も 置換できる方法はないものでしょうか

タグ付き正規表現による置換で可能です。

置換ダイアログで、置換元に
<\f[^>]+\f>
置換後に
\n\1
正規表現をONで可能です。

マクロなら、
// テストマクロ(ここから)
    replaceallfast "<\\f[^>]+\\f>", "\\n\\1", regular, inselect;
    endmacro;
// テストマクロ(ここまで)
です。

タグ付き正規表現の詳細は、秀丸のヘルプや、
http://win.blue.co.jp/~jr-kun/hidemaru_qa/4_tagreg.html
を参照して下さい。

[ ]
RE:10289 はじめまして 任意文字の置換No.10291
RED さん 01/11/14 12:41
 
TAKAさん、こんにちは。RED と申します。
>
>すでに、別の方からレスがあるようですが、
>
>TEST<ABC>TEST<DEF>TEST
>というようなデータでは、
>
>TESTTEST
>ABC
となって欲しいのです

宜しくお願いします

[ ]
RE:10291 はじめまして 任意文字の置換No.10292
TAKA さん 01/11/14 12:56
 
TAKA です。

>>TEST<ABC>TEST<DEF>TEST
>>というようなデータでは、
>>
>>TESTTEST
>>ABC
>となって欲しいのです

まだ分かりません。規則性が分かりません。
TEST1<ABC>TEST2<DEF>TEST3
ならどうなって欲しいのですか?
「DEF」と「TEST3」など。

TEST1TEST2TEST3
ABCDEF
でしょうか?

[ ]
RE:10292 はじめまして 任意文字の置換No.10294
RED さん 01/11/14 13:42
 
REDです

TAKA さん有り難うございます。
>
>まだ分かりません。規則性が分かりません。
>TEST1<ABC>TEST2<DEF>TEST3
>ならどうなって欲しいのですか?
>「DEF」と「TEST3」など。
>
>TEST1TEST2TEST3
>ABCDEF
>でしょうか?

はい そうです。

あと、私は 秀丸の マクロなどは使ったことがございませんので
ライブラリの入れ方など 教えていただけると たすかります

置換でのやり方も お願いします。




[ ]
RE:10294 はじめまして 任意文字の置換No.10295
アルビレオ さん 01/11/14 15:07
 
REDさんはじめまして、めったに書き込まないアルビレオです。

>REDです
>
>TAKA さん有り難うございます。
>>
>>まだ分かりません。規則性が分かりません。
>>TEST1<ABC>TEST2<DEF>TEST3
>>ならどうなって欲しいのですか?
>>「DEF」と「TEST3」など。
>>
>>TEST1TEST2TEST3
>>ABCDEF
>>でしょうか?
>
>はい そうです。

上のルールで日本語の文章を変換すると、

お昼<ひる>になったので食事<しょくじ>にしましょう

お昼になったので食事にしましょう
ひるしょくじ

となりますが、これでいいんでしょうか?
最低でも、ルビとルビの間にスペースを入れるぐらいはした方が
いいような気がします。

[ ]
RE:10295 はじめまして 任意文字の置換No.10296
RED さん 01/11/14 15:37
 
アルビレオさん こんにちは。
>

REDです

>お昼になったので食事にしましょう
>ひるしょくじ
>
>となりますが、これでいいんでしょうか?
これでも こんかいのばあいは かまいません

詩歌の全文検索なんですが 最初は
我想<おも>ふ 時の流れに...としてたのですが


我想ふ時の流れに...
われおもふときのながれに

という指定がありましたので

ですから どちらかというと したの行に置くより 括弧ごと削除すると言った感じ
になるかもしれません。

少しややこしいですが
宜しくお願いします

[ ]
RE:10294 はじめまして 任意文字の置換No.10307
TAKA さん 01/11/14 17:57
 
TAKA です。

>>TEST1<ABC>TEST2<DEF>TEST3
>>ならどうなって欲しいのですか?
>>「DEF」と「TEST3」など。
>>
>>TEST1TEST2TEST3
>>ABCDEF
>>でしょうか?
>
>はい そうです。

ようやく、仕様が見えました。
でも、この仕様(ルビを次の行に集める)からいくと、

昔<いにしゑ>の

を処理した場合は、

昔の
いにしゑ

となり、最初の投稿と違う結果になりますよ。
^^^^^^^^^^^^^^^^^^^^^
#本当に、いいのかな?

最初の投稿は間違いであったという前提で、話をします。
^^^^^^^^^^^^^^^^^^^^^^^^^^

置換ダイアログで1発で処理するのは、おそらく無理だと思います。
マクロを使うしかないと思います。
2種類のやり方を思いつきました。
その1は要望と少し違います。その2は少し前提条件が入ります。
制限なしは、私には難しいので、パスします。


●その1

TEST1TEST2TEST3
ABCDEF
ではなく、
TEST1TEST2TEST3
ABC
DEF
となっても良いという前提。

// テストマクロ(ここから)
    disabledraw;
    while( 1 )
    {
        replaceallfast ".*\\f<\\f[^>]+\\f>\\f.*", "\\0\\4\\n\\2", regular;
        if( !result )   break;
    }
    enabledraw;
    endmacro;
// テストマクロ(ここまで)


●その2

TEST1TEST2TEST3
ABCDEF
でないとだめ。
但し、行頭に《、行末に》を使用しないという規約を作れる。

// テストマクロ(ここから)
    disabledraw;
    // 第一段階処理(《》付でルビを改行させながら次の行に持っていく)
    while( 1 )
    {
        replaceallfast ".*\\f<\\f[^>]+\\f>\\f.*", "\\0\\4\\n《\\2》", regular;
        if( !result )   break;
    }
    // 第二段階処理(不要な《》と改行を1つにまとめる)
    while( 1 )
    {
        // ルビの間に空白行を入れる場合
//      replaceallfast "^《.*\\f》\\n《\\f.*》\\n", "\\0 \\2", regular;
        // ルビの間に空白行を入れない場合
        replaceallfast "^《.*\\f》\\n《\\f.*》\\n", "\\0\\2", regular;
        if( !result )   break;
    }
    // 第三段階処理(不要な《》を削除)
    while( 1 )
    {
        replaceallfast "^《\\f.*\\f》\\f\\n", "\\1\\3", regular;
        if( !result )   break;
    }
    enabledraw;
    endmacro;
// テストマクロ(ここまで)


>あと、私は 秀丸の マクロなどは使ったことがございませんので
>ライブラリの入れ方など 教えていただけると たすかります

すでに、ドキュメント化されていますので、
http://win.blue.co.jp/~jr-kun/hidemaru_qa/hmindex3.html
を参照して下さい。


>置換でのやり方も お願いします。

今回は、置換ダイアログを使って処理するのは無理だと思います。
#少なくとも、私は思いつきませんでした。

ちなみに、<>で括られて部分を<>ごと削除するなら、
置換ダイアログ(検索→置換)で、置換元に
<[^>]+>
を入力、
置換後に

を入力(置換後の入力は何もない状態)、正規表現をONで可能で
す。


P.S.
具体例は、単純なパターンを1個ではなく、2、3個パターンを書
いた方が分かりやすいです。
また、具体例は間違わないようにお願いします。その通りに作って
も「ごめん。間違ってました。」というのは、あんまりですので。
最初の書き込みだけでは、コメントした全員が勘違いをしました。
(別に怒ってはいませんので、ご安心を)
次回からは、よろしくお願いします。ということです。

[ ]
RE:10307 はじめまして 任意文字の置換No.10308
RED さん 01/11/14 18:36
 
red です。

すいません。もう一つお願いします

えっと 先ほどの 括弧ですが
下に移さず 削除の場合は
したのマクロをどう変えれば宜しいのでしょうか
宜しくお願いします



>昔<いにしゑ>のを

昔のを
にしたいのですが


....と想ったら、したに 置換の方法で書いてましたね
これを マクロでやる方法があったら
宜しくお願いします。

何度も何度も すいません

[ ]
RE:10308 はじめまして 任意文字の置換No.10310
TAKA さん 01/11/14 18:50
 
TAKA です。

>これを マクロでやる方法があったら
>宜しくお願いします。

以下のマクロで可能です。
1行目と3行の頭に「//」をつけてコメントアウトすると、処理が
どのように進んでいるか分かります。但し、少しスピードが落ちる
と思います。

// テストマクロ(ここから)
    disabledraw;
    replaceallfast "<[^>]+>", "", regular;
    enabledraw;
    endmacro;
// テストマクロ(ここまで)

[ ]
RE:10310 はじめまして 任意文字の置換No.10312
RED さん 01/11/14 20:11
 
RED です。
TAKAさま 

できました。
有り難うございました。

これからも宜しくお願いします




[ ]