キーワードの1行上での改行方法No.08565
こうき さん 17/09/23 06:24
 
教えて下さい!
ネットで入手したあるブログのコメント欄をコピペし、つめ太郎さんのマクロで空白
行を取り除いてから、秀丸パブリッシャーでA4用紙2段組み印刷したものをタテ折り
にしたものいつも電車の中で読んでいます。

・・・
ナントカカントカナントカカントカナントカ
ナントカカントカナントカカントカナントカ
サマザマナニックネーム
2017年ナニガシ
ナントカカントカナントカカントカナントカ
ナントカカントカナントカカントカナントカ
・・・

このようなテキストを読み易くするために、行頭キーワード2017年で改行させるには
^2017年 → \n2017年
で「正規表現」置換すれば済む訳ですが、

・・・
ナントカカントカナントカカントカナントカ
ナントカカントカナントカカントカナントカ

サマザマナニックネーム
2017年ナニガシ
ナントカカントカナントカカントカナントカ
ナントカカントカナントカカントカナントカ
・・・

のようにその行頭キーワードの1行上で改行させるような置換はできないでしょう
か?よろしくお願い致します。

[ ]
RE:08565 キーワードの1行上での改行方法No.08566
でるもんたいいじま さん 17/09/23 07:52
 
こんにちは。秀丸愛用者の「でるもんた・いいじま」です。

> ナントカカントカナントカカントカナントカ
> サマザマナニックネーム
> 2017年ナニガシ
> ナントカカントカナントカカントカナントカ
> ナントカカントカナントカカントカナントカ
> ・・・
>
> このようなテキストを読み易くするために、
> 行頭キーワード2017年で改行させるには
> ^2017年 → \n2017年
> で「正規表現」置換すれば済む訳ですが、
...
> のようにその行頭キーワードの1行上で改行させるような
> 置換はできないでしょうか?

ちょっと手元で試してみました。

^.+\n2017年 → \n\0
でいけるようです。
.+ と書いた場合、デフォルトでは改行にはヒットしません。

ちなみに、2017年以外の記事でも大丈夫なようにするには、
^.+\n\d+年 → \n\0
としてください。\d は [0-9] と同義です。

ちなみに蛇足ですが、上記の方法は正規表現のDLLが古い場合には
うまく動作しない可能性があります。もしうまくいかない場合は、
置換のダイアログで「HMJRE.DLL V5.01」のように表示されている
部分をチェックしてください。上記の「V5.01」が現在の最新です。

[ ]
RE:08566 キーワードの1行上での改行方法No.08568
でるもんたいいじま さん 17/09/23 08:08
 
でるもんた・いいじまです。追記です。

>> このようなテキストを読み易くするために、
>> 行頭キーワード2017年で改行させるには
>> ^2017年 → \n2017年
>> で「正規表現」置換すれば済む訳ですが、
> ...
>> のようにその行頭キーワードの1行上で改行させるような
>> 置換はできないでしょうか?
>
> ちょっと手元で試してみました。
>
> ^.+\n2017年 → \n\0
> でいけるようです。
> .+ と書いた場合、デフォルトでは改行にはヒットしません。
>
> ちなみに、2017年以外の記事でも大丈夫なようにするには、
> ^.+\n\d+年 → \n\0
> としてください。\d は [0-9] と同義です。

すみません追記。
当然ですが、この正規表現だと、本文の頭に「2017年には…」などと
書いてある部分にもヒットしてしまいます。それがたまに発生する
程度なら手作業で修正してもいいと思いますが、頻発するようなら、
^.+\n\d+年\d+月\d+日 → \n\0
とか
^.+\n\d+年\d+月\d+日 \d+:\d+:\d+ → \n\0
とかいろいろ工夫してみてください。

あと、これだけ長くなる場合には、この置換自体をマクロにして
しまったほうがいいと思います。こんな感じですかね。

setcompatiblemode 0x20000;
begingroupundo;
replaceallfast "^.+\\n\\d+年\\d+月\\d+日", "\\n\\0", regular;
endgroupundo;

ちなみに、最近のバージョンなら @"..." という記法が使えます
ので、上記の3行目は
replaceallfast @"^.+\n\d+年\d+月\d+日", @"\n\0", regular;
とも書けます。古いバージョンの秀丸を気にしなくていいなら、
この @"..." を使ったほうが見通しがよくなると思います。

[ ]