改行の削除についてNo.19449
黄色いシャツ さん 05/06/14 14:34
 
続いての質問で恐縮です。
テキストの編集をしていて、文章のの途中にもかかわらず、改行が挿入されてしまっ
ている箇所が多量にあり苦慮しております。どのような解決法が考えられるのでしょ
うか。

具体的な処理は、
(1)改行の次の行頭に空白(半角、全角)またはタブがある場合にはこの改行は削
除しない

(2)(1)出ない場合には、次行の改行を削除して、行を詰める

マクロを使わなければならないのでしょうか?

[ ]
RE:19449 改行の削除についてNo.19450
capa さん 05/06/14 15:20
 
capa です。

検索: \n[^\t  ]
      ↑大カッコ内には半角空白と全角空白があります。
置換: (何も指定しない)
正規表現にチェックを入れて置換

ではどうでしょう。

[ ]
RE:19450 改行の削除についてNo.19451
capa さん 05/06/14 15:51
 
capa です。

すみません。前回の例では必要な文字まで消えてしまうのでダメです。

検索: \n\f[^\t  ]
       ↑大カッコ内には半角空白と全角空白があります。
置換: \1
正規表現にチェックを入れて置換

としてみてください。

[ ]
RE:19451 改行の削除についてNo.19454
黄色いシャツ さん 05/06/14 17:58
 
コメントありがとうございます。
>検索: \n\f[^\t  ]
>       ↑大カッコ内には半角空白と全角空白があります。
>置換: \1
>正規表現にチェックを入れて置換
>
>としてみてください。
これでうまくできました。タグ付き正規表現の意味が全く理解できていないのですが、
もし行頭の空白やタブが複数個連続している場合には、\n\f[[^\t  ]+]と表現され
るのでしょうか?

[ ]
RE:19454 改行の削除についてNo.19458
capa さん 05/06/14 18:47
 
capa です。

行頭の空白やタブが連続している場合でも、先ほどの例なら問題なく行
頭以外の部分での行の連結ができると思うのですが?

一応\n\f[^\t  ]の説明をしときますと「改行コードの次にタブでも半
角空白でも全角空白でもない文字が来た場合」となり、\fによって\0に
改行コードが、\1に「タブでも半角空白でも全角空白でもない文字」が
セットされます。なので行頭のタブ等が1つだろうが複数だろうが今回
の検索条件にはヒットしないのでその前の改行コードは削除されません。

いずれにせよ正規表現についてもっと知りたいのであれば、ここで時間
をかけてやり取りするよりもgoogle等で検索して巷に山ほどある正規表
現の解説ページを参照された方が手っ取り早いと思いますけど。秀丸の
ヘルプにも「正規表現」の詳細な説明はありますので、それを調べて実
際に試行錯誤を繰り返すだけでもたいていの正規表現は記述できるよう
になると思います。

[ ]
RE:19458 改行の削除についてNo.19464
黄色いシャツ さん 05/06/15 06:17
 
capa さん、コメントありがとうございます。

解説をして頂き、私も秀丸のヘルプを見ながら漸く内容が理解できました。「^」は
補集合だったのですね。

正規表現については、おっしゃるとおりに別のHP等を参考に勉強したいと思っていま
す。ありがとうございました。

[ ]