■ 質問はここへ ■

802 にジャンプ
No. 801投稿者: QX初心者日付: 2003/04/12 20:21:40
題名 : QXの正規表現

置換作業

QXの正規表現は、秀丸のそれとは、使っているプログラムが違うのでしょうか?
以下の置換をやっていたのですが、両者の「検索文字列」「置換文字列」に
違いがありましたので、他にも相違があるのかと思っています。
秀丸ユーザーなのですが、QXに完全に乗り換えたいと思っていた矢先だったので
少し面食らっています。

1
2


01.
02.
に置換。

[QX]
「検索文字列」\([0-9]\)
「置換文字列」0\1\.

[秀丸]
「検索文字列」^[0-9]
「置換文字列」0\0.

No. 802 (801へのコメント)投稿者: かぶねこ HP日付: 2003/04/12 21:16:18
題名 : Re:QXの正規表現

QX の正規表現は sed, awk, perl などで使われている正規表現に準じています。
秀丸のほうが特殊な仕様になっているようです。

(投稿者名には「一般名詞」的なものは避けていただけるとありがたいです。こ
こだけで使う名前でけっこうですので、何か個人として特定できるハンドルにし
てください。)

No. 803 (802へのコメント)投稿者: かぶねこ HP日付: 2003/04/12 21:34:36
題名 : Re^2:QXの正規表現

修正です。文字列グループ化のカッコをエスケープするのは sed と grep だけ
のようです(どちらも古めのツール)。ですから文字列のグループ化に () を使
う秀丸のほうが多数派かもしれません。グループ化した文字列の再使用について
は、最初のグループが \0 なのは珍しいと思います。

ちょっと比較したところでは、他にあまり大きい違いはないので、それほど移行
に苦労はないと思います。

あと QX での置換文字列の中のピリオドは「置換後」の文字列なのでエスケープ
しなくてもよい(秀丸と同じ)かもしれません。

No. 804 (803へのコメント)投稿者: かぶねこ HP日付: 2003/04/12 22:16:22
題名 : Re^3:QXの正規表現

もう一度修正です。(何度もすみません。)

上で「グループ化」と表記したのは「タグつき正規表現」の「後方参照タグ」と
いうもののようです。これが QX では「\( 〜 \)」なのです。QX は正しい意味
でのグループ化はありません。「|」もないようです。

タグつき正規表現については秀丸では \f を区切りとした特殊仕様になっていま
すね。

例として提出された置換では、秀丸の ^[0-9] は行頭の 0 から 9 のどれか、と
いう意味ですが、ここで検索ヒットしたものがそのまま \0 として再利用できる
ので、タグつき正規表現までやらなくても1箇所なら置換できる、と、そういう
理解でいいのかな。秀丸あんまり使わないんでよくわからないですが。

QX ではそういう「自動的に一時保存されている文字列」がないので、明示的に
タグつき正規表現で書く必要があります。

No. 810 (804へのコメント)投稿者: QX初心者日付: 2003/04/15 12:56:26
題名 : Re^4:QXの正規表現

かぶねこさん、ありがとうございます。
最初に、「投稿者名」の件、失礼しました。今回はこれで通しますが、
次回からは改めさせて頂きます。

秀丸、QXの他のエディタはどうなのだろうかと確かめていました。
「SAKURA エディタ」と「K2エディタ」しか試せていませんが、両方とも
「検索文字列」:「^([0-9])」
「置換文字列」:「0$1\.」
となりました。

「.」をエスケープするために「\」を入れるのは秀丸と変わらなかったですが
「\0」の変わりに「$」が入るのですね。

>あと QX での置換文字列の中のピリオドは「置換後」の文字列なのでエスケープ
>しなくてもよい(秀丸と同じ)かもしれません。

これは秀丸も同様で、「\.」は「.」単体でもいけました。

>上で「グループ化」と表記したのは「タグつき正規表現」の「後方参照タグ」と
>いうもののようです。これが QX では「\( 〜 \)」なのです。QX は正しい意味
>でのグループ化はありません。「|」もないようです。

「|」は「***か***」のどちらか、と言うことですが、
QXの場合はどうやるのでしょうか?

秀丸しか知らなかった私にとっては、これの正規表現がいわゆる「正規表現」だと思っていましたが、
エディタ(が採用している正規表現プログラム)によって違いが出ることが分かりました。

QXの正規表現も徐々に覚えていけば慣れることができそうですので、移行には支障はなさそうです。

No. 811 (810へのコメント)投稿者: かぶねこ HP日付: 2003/04/15 13:52:16
題名 : Re^5:QXの正規表現

>秀丸、QXの他のエディタはどうなのだろうかと確かめていました。

確認ありがとうございました。SAKURA エディタと K2 エディタも JRE32.DLL を
使用しているんですね。基本的に秀丸と同じになるということでしょうか。QX
エディタの場合は基本的に QGrep と同じで、そこにタグ対応が追加されている
といったところかも。

>「|」は「***か***」のどちらか、と言うことですが、
>QXの場合はどうやるのでしょうか?

とりあえず正規表現として対応していないので、できません。(と思います。)

>QXの正規表現も徐々に覚えていけば慣れることができそうですので、移行には支障はなさそうです。

基本的なところは共通みたいですね。あと、QX でも行頭を指定するのに ^ は使
えます。

No. 817 (811へのコメント)投稿者: QX初心者日付: 2003/04/18 14:49:33
題名 : Re^6:QXの正規表現

ありがとうございました。色々と勉強になりました。

「〜または〜」というのが無いのが少し気がかりですが
QXの正規表現も慣れようと思います。


ヘッダのみ表示
順番に表示(No. 802 から)


メールアドレスを表示するにはURLの後ろに &m=b2258a7e をつけてください。
ユーザー フォーラム一覧

http://www2k.biglobe.ne.jp/~araken/
http://0ban.com/araken/