正規表現だけで、文頭末に行を挿入可能?No.28991
KRT さん 10/10/02 13:16
 
お世話になります。
多分出来ないかと思いますが、
正規表現だけで(マクロを使わずに)、
テキストファイルの、文頭又は文末に、行を挿入出来ませんか?
例)
0  挿入行
1  (既存行)
2  (既存行)
10  挿入行
[EOF]

宜しくお願いします。

[ ]
RE:28991 正規表現だけで、文頭末に行を挿No.28992
IKKI さん 10/10/02 19:58
 
こんにちは。ユーザの IKKI です。

お察しの通り、秀丸エディタでは、正規表現だけで文書頭/文書末を表現することは
できないと思います。

[Ctrl+Home] [Enter] や [Ctrl+End] [Enter] ではダメですか?

[ ]
RE:28992 正規表現だけで、文頭末に行を挿No.28994
KRT さん 10/10/04 08:43
 
IKKI さん

有難うございます。
やはりそうですか。
複数のファイルに、特定の文字列を挿入したかったのですが。
代替案を考えてみます。
お世話になりました。

[ ]
RE:28994 正規表現だけで、文頭末に行を挿No.28996
IKKI さん 10/10/04 13:40
 
こんにちは。ユーザの IKKI です。

> 複数のファイルに、特定の文字列を挿入したかったのですが。
> 代替案を考えてみます。

複数ファイル一括置換系のソフトの中には、そういった機能を持つものがあるかもし
れませんね。
参考: http://freesoft-100.com/pasokon/replace.html

可能なら Perl や Ruby などのスクリプト言語を使うのが最も汎用的ですが…。

[ ]
RE:28991 正規表現だけで、文頭末に行を挿No.28997
きいろいまふらあ さん 10/10/04 21:30
 
きいろいまふらあです。
少々トリッキーですが…。

●ファイルの先頭に「特定の文字列+改行」を追加

(1)全ての行頭に「ありえない文字列」を挿入
(2)「改行+ありえない文字列」を「改行」に置換
(3)「ありえない文字列」を「特定の文字列+改行」に置換

…とすると正規表現だけでファイルの先頭に任意の文字列を挿入できますよね。

ファイルの末尾の方は正規表現の「\z」を使えばよいと思ったのですが、どうも
うまくヒットしてくれませんでした。画面上の「[EOF]」は必ずしもデータ上の
End Of Fileではないのかもしれません。

[ ]
RE:28997 正規表現だけで、文頭末に行を挿No.28998
Iranoan さん 10/10/04 21:54
 
 きいろいまふらあさん今日は、Iranoan です。
 本題については、方法が解りません。ただ
> ファイルの末尾の方は正規表現の「\z」を使えばよいと思ったのですが、どうも
> うまくヒットしてくれませんでした。画面上の「[EOF]」は必ずしもデータ上の
> End Of Fileではないのかもしれません。
に付いては、ヘルプに
> また、秀丸エディタではテキスト末にあるEOFは検索できません。
とあり、ファイルの終端の検索は、サポートしていないようです。

[ ]
RE:28998 正規表現だけで、文頭末に行を挿No.28999
きいろいまふらあ さん 10/10/05 07:38
 
Iranoanさん、ありがとうございます。

確かにヘルプに書かれていました。
その上の方の

> 正規表現では、以下のエスケープシーケンスが使用できます。

> \z エンドオブファイル(EOF:文字コード26)

という記述だけ見て、使えるのかと思ってしまいました。
…となると「\z」はどういうケースで使うことを想定しているのでしょう?

HmJre.dllでは実装しているけど、秀丸エディタでは使えない、ということなの
でしょうか?

[ ]
RE:28999 正規表現だけで、文頭末に行を挿No.29000
IKKI さん 10/10/05 09:07
 
こんにちは。ユーザの IKKI です。

> > 正規表現では、以下のエスケープシーケンスが使用できます。
> > \z エンドオブファイル(EOF:文字コード26)
>
> という記述だけ見て、使えるのかと思ってしまいました。
> …となると「\z」はどういうケースで使うことを想定しているのでしょう?

次のようなケースで利用できます。

insert "\x1a";
searchup "\\z", regular;

ヘルプに書いてある「エンドオブファイル」は文字コード 26 の制御文字のことであ
って、ファイルの終端という意味ではありません。

参考: http://ja.wikipedia.org/wiki/%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB#.E5.88.B6.E5.BE.A1.E6.96.87.E5.AD.97

[ ]
RE:29000 正規表現だけで、文頭末に行を挿No.29001
KRT さん 10/10/05 12:30
 
遅れました。色々なアドバイス有難うございます。
IKKI さん
複数ファイル一括置換の件、探してみます。
山紫水明さんの「変換リストによる連続置換」を愛用していますが。

きいろいまふらあ さん
確かに、挿入出来ますね。
既存行への挿入分削除が解らないので、今後の参考に致します。

ちょっと手間ですが、UWSCという自動化ツールで、挿入しようと思います。

[ ]
RE:29000 正規表現だけで、文頭末に行を挿No.29006
きいろいまふらあ さん 10/10/05 23:32
 
きいろいまふらあです。
IKKIさん、ありがとうございます。

>ヘルプに書いてある「エンドオブファイル」は文字コード 26 の制御文字のことであ
>って、ファイルの終端という意味ではありません。

勉強になりました。

[ ]