- 作成者投稿
- 2007年1月23日 3:15 pm #4030
510
参加者製品:EmEditor Professional Version 6.00.2
正規表現を用いて行先頭の空白2桁を削除しようとしています。
検索する文字列:‘^xx’( ^ の後に半角 x を2文字)
置換後の文字列:‘’(入力なし)テキスト(A)を全選択し、置換を実施すると、置換結果がテキスト(B)となります。テキスト(C)が正しい結果であると認識しています。
念のため、ヘルプにある「Q. 正規表現例を教えてください。」の例題「行頭の // を削除する」を確かめてみましたが、これも正しく動作しません。
— テキスト(A) ————————-
ABC
xDEF
xxGHI
xxxJKL
xxxxMNO
xxxxxPQR
xxxxxxSTU
xxxxxxxVWX
xxxxxxxxYZ9
——————————————— テキスト(B) ————————-
ABC
xDEF
GHI
xJKL
MNO
xPQR
STU
xVWX
YZ9
——————————————— テキスト(C) ————————-
ABC
xDEF
GHI
xJKL
xxMNO
xxxPQR
xxxxSTU
xxxxxVWX
xxxxxxYZ9
——————————————2007年1月23日 5:23 pm #4033takuya
参加者見事に奇数部分だけ残ってますね。。。もしかして正規表現のチェックボックスOFFの可能性があるんじゃ?
2007年1月23日 5:35 pm #4034ooshida
メンバー「すべて置換」であれば、
マッチする条件が存在する限り置換を続けると思うので、
これで正常だと思いますよ。とりあえずCの結果を得るには、
検索:
^xx(.+)$
置換:
1
でどうでしょうか?
(他の環境には詳しくないので、知った上での指摘ならすいません)2007年1月23日 5:50 pm #4037Yutaka Emura
キーマスターooshida さんも書かれているように、置換ダイアログの [すべて置換] ボタンは、次を検索して置換する [置換] ボタンを次々と続けて実行することと同じなので、このような結果になります。
2007年1月23日 6:48 pm #4039510
参加者「すべて置換」ボタンを押した際の振る舞いに付いては、結果的に ^ 記号による指示が無効にされると言うことであると理解しました。
※ヘルプにその旨記述していただけると助かります。ヘルプ中の表現はちょっと曖昧に感じました。すると、 vi やその互換エディタでサポートする「行範囲指定の置換」はEmEditorではサポートしていないと言うことでしょうか。
置換のダイアログを出すと、「置換」ボタンと「すべて置換」ボタン」が活性化された状態になるのですが、「選択した範囲のみ」チェックを入れると「置換」ボタンが非活性の状態となります。
つまり範囲指定した部分に「置換」ボタンを押した際の効果を与えることができない状態となっています。
※ooshida さんの書かれたような正規表現で回避できるので
とりあえずは問題ないのですが…『「選択した範囲のみ」のチェックは行を意味している訳ではない』と言うことでしたら今回の振る舞いは納得できます。その場合は「機能追加の要望」へ「行範囲指定の置換」の機能追加願いを投稿させていただきます。
- 作成者投稿
- このトピックに返信するにはログインしてください。