dポイントプレゼントキャンペーン実施中!

emacs や xyzzy で、
設定ファイルの中に、
拡張子の正規表現として、

 \\.vbs

のような表現がありますが、
ずっと以前から疑問に思っています。

 \.vbs

なら意味がすぐに分かるのですが、
その前に \ をつける必要性が分かりません。

この \ (私にとりましては余分に見える \ )には
どのような意味があるのですか?
どなたかお教え願えませんでしょうか?
どうぞよろしくお願いします。

A 回答 (2件)

>つまり正規表現関数に渡されるのは2番目の \ 以下の文字列、


>ということでよろしいんでしょうか?

はい、そうです。
日本語環境だと円マークですが、海外だとバックスラッシュのことが
ほとんどで、バックスラッシュがたくさんあるさまをみて
爪楊枝が並んでいるようだとかいわれたりしています。
    • good
    • 0
この回答へのお礼

ご親切にご回答をいただきまして
ありがとうございました。
もやが晴れたような感じ、
おかげですっきりしました。

お礼日時:2007/11/10 10:09

Emacs Lisp や xyzzy では、Perlのように正規表現リテラル


というものがないので、一端文字列として記述しておいて
それを正規表現を解釈する関数に渡します。
このとき通常の文字列と同じようにエスケープの処理が行われます。
このため、

"\.vbs" のように書いてしまうと、正規表現関数に渡されるのは
".vbs" になってしまうのです。
そこで '\' を正規表現関数に渡すために、文字列に対する
エスケープ処理をしたときに取り除かれる文を見越して

"\\.vbs"

のように書くのです。

この回答への補足

ご教示ありがとうございます。

エスケープ処理が2段階で行われるということですね。
\\. の最初の \ は2番目の \ を文字としての \ として扱う、
つまり正規表現関数に渡されるのは2番目の \ 以下の文字列、
ということでよろしいんでしょうか?

補足日時:2007/11/09 18:03
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!