正規表現を含む置換で正規表現部を残す方No.13783
MLq さん 03/01/07 11:06
 
基本的なことかもしれませんが、正規表現を含む置換について教えて下さい。

次のように、行頭が最大3桁の半角数字と全角ドットで始まる文章を
含んだ数千行のテキストファイルがあります。

1.ABC株式会社は、
タッチパネル式・・・」
2.ホームシアター機器、
ハイエンド・・・
3.価格は仕様に応じて
           〜 中略 〜
999.今後は、双方向通信機能や
フォース・・・

これを次のように、先頭が■と半角数字になるように
したいと思っています。

■1.ABC株式会社は、
タッチパネル式・・・
■2.ホームシアター機器、
ハイエンド・・・
■3.価格は仕様に応じて
           〜 中略 〜
■999.今後は、双方向通信機能や
フォース・・・


置換箇所は
\n[0-9]*.
で検索できるのですが、置換後に半角数字を残す方法はないでしょうか?

アドバイスよろしくお願いいたします。

[ ]
RE:13783 正規表現を含む置換で正規表現部No.13784
Kaisan さん 03/01/07 11:48
 
秀丸のタグ付き正規表現による置換を利用すれば出来ます。

検索:^[0-9]+.
置換:■\0

詳しくは置換のヘルプより、タグ付き正規表現についてを参照してください。

[ ]
RE:13783 正規表現を含む置換で正規表現部No.13785
山城屋 さん 03/01/07 11:49
 
秀丸エディタのヘルプを見ますと、拡張正規表現が使える模様。

 目次
  → 検索系コマンド
   → タグ付き正規表現による置換について

をご覧ください。

ということで、
 > 置換後に半角数字を残す方法はないでしょうか?
ドット記号も残すのですよね。?
それならば、
 置換個所の指定:「^\f[0-9]+[.]」(*1)
 置換後の文字列:「■\1」
 正規表現:on
で置換されてはいかがでしょうか?

注 *1:
 ここで「.」(ダブルバイトの.)を[]でくくって
 いますが、必須ではありません。シングルバイトの
 ドット(「.」)の場合は[]が必要になりますが。
 見易さのためにこうしただけです。却って見づらく
 なっているかもしれません。あらかじめお詫び。

# >置換箇所は
# >\n[0-9]*.
# >で検索できる
#
# 私なら「^[0-9]+.」とします。

[ ]
RE:13785 正規表現を含む置換で正規表現部No.13787
MLq さん 03/01/07 13:16
 
>秀丸エディタのヘルプを見ますと、拡張正規表現が使える模様。

kaisanさん、山城屋さん、素早いアドバイスどうもありがとうございました。
おかげさまで、無事ファイルを置換できました。

「秀丸Q&A 第W部テキスト編集を極める」はプリントアウトして愛用して
いるのですが 「正規表現について」の後に、「タグ付き正規表現とは?」
があるのを見落としていました。
まだまだ修行が足りませんね。

[ ]
RE:13785 正規表現を含む置換で正規表現部No.13790
きいろいまふらあ さん 03/01/08 01:37
 
横から失礼します。蛇足かもしれませんが、

> 置換個所の指定:「^\f[0-9]+[.]」(*1)

>注 *1:
> ここで「.」(ダブルバイトの.)を[]でくくって
> いますが、必須ではありません。シングルバイトの
> ドット(「.」)の場合は[]が必要になりますが。

シングルバイトのドット「.」の場合は、より一般的には(教科書的には)
「\.」という風に「\」記号を使用してエスケープします。
ブランケットで囲んでも同様の効果はありますが、これは副次的なものと理解し
ておいたほうがよいんではないかと思います。

[ ]