2017-08-15 11 views
2

GNU Emacs Lispを学ぶと、コードについて非常に混乱します。奇妙な正規表現の文字列

(looking-back "\\s)" 1) 

私は\\s)は放置かわからない?私はそれが文字)をMACHことができます知っている、と私は一致する文字列のルールを知ってほしいです。なぜ正規表現を使用しないのですか?

答えて

2

私は\\s)が、私はそれが文字)をMACHすることができます知っていますか?放置かわからない、と私は一致する文字列のルールを知ってほしい。

\s)試合の一つ出現構文クラス "close parenthesis"の文字。

Elispマニュアル、ノードSyntax Class Tableを参照してください。

開き括弧文字:(

閉じ括弧文字:文章や 式を囲むように、異なるペアで使用)

文字。このようなグループ分けは、開き括弧 で始まり、閉じて終了します。それぞれの開いた括弧 は、特定の閉じ括弧の文字と一致し、その逆は です。通常、Emacsは閉じ括弧を挿入すると、一致する括弧 を一時的に示します。 *注: 点滅::。

人間言語およびCコードでは、括弧のペアは(), []および{}です。 Emacs Lispでは、リストの区切り文字と ベクトル(()[])はかっこ文字に分類されます。

+0

上記の答えに追加するには、文字列内で '\'が特殊文字なので、 '\\'としてエスケープする必要があります。したがって、文字列処理の後、 '' \ s "'は '\ s'になります。これはEmacsの正規表現拡張であり、プログラミング言語を解析する際によく遭遇するケースを処理します(構文強調など)。 [markdownもまた '\'の特別な扱いが必要な場合があります] – JSON

+0

Emacs Lispは文字列にマッチするように "\\ s"をCプログラムに渡しますか?ありがとう、私はそれを得ます。 –