■ 質問はここへ ■

前へ 次へ
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. 805投稿者: やすみん日付: 2003/04/14 11:14:59
題名 : 文頭の→はなんでしょう?

文書を書いていて、文頭に小さい矢印「→」が表示される時があります。
削除できませんが、これはなんでしょうか?

No. 806投稿者: やすみん日付: 2003/04/14 11:19:50
題名 : 文字列置換について

ツールバー「検索」の「文字列置換」機能についてです。
空白を含む文字列の置換はできますか?
たとえば、「radio wave」(電波)と書いたのを、「radiowave」と1単語に直したい場合、
「radio wave」を「radiowave」に置換、と入力したところ、できませんでした。

No. 807 (805へのコメント)投稿者: かぶねこ HP日付: 2003/04/14 12:33:58
題名 : Re:文頭の→はなんでしょう?

>文書を書いていて、文頭に小さい矢印「→」が表示される時があります。
>削除できませんが、これはなんでしょうか?

「箇条書き機能」がオンになっていますか? そうであれば箇条書きで1行を超
えたところをインデント表示していることを表す記号だと思います。

No. 808 (806へのコメント)投稿者: かぶねこ HP日付: 2003/04/14 12:38:05
題名 : Re:文字列置換について

>空白を含む文字列の置換はできますか?

できます。「radio wave」を「radiowave」に置換もこちらではできています。
他に何かの要素が関与していないか、確認していただけますか。

No. 809 (806へのコメント)投稿者: 原田 一徳日付: 2003/04/14 19:49:47
題名 : Re:文字列置換について

>空白を含む文字列の置換はできますか?

文字列置換ダイアログの
"文書の先頭から検索する"
のチェックボックスはON(チェック)になっていますか?

カーソルより前に置換対象の文字列がある場合、
チェックボックスをONにする必要があります

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

次へ
現在の既読番号は 0  既読を


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

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