2
當我學習GNU Emacs Lisp時,我對代碼非常困惑。奇怪的正則表達式字符串
(looking-back "\\s)" 1)
我不知道\\s)
代表什麼嗎?我知道它可以馬赫字符)
,我想知道匹配的字符串的規則。爲什麼不使用正則表達式?
當我學習GNU Emacs Lisp時,我對代碼非常困惑。奇怪的正則表達式字符串
(looking-back "\\s)" 1)
我不知道\\s)
代表什麼嗎?我知道它可以馬赫字符)
,我想知道匹配的字符串的規則。爲什麼不使用正則表達式?
「我不知道\\s)
代表什麼嗎?我知道它可以馬赫字符)
,我想知道匹配的字符串的規則。」
\s)
比賽的一個發生字符與語法類「關閉括號」。
請參閱Elisp手冊,節點Syntax Class Table。
開括號字符:
(
關閉括號字符:在不同成對使用,環繞句子或 表達
)
人物。這樣的分組開始於一個開括號 字符並終止。每個左括號 字符都匹配特定的右括號字符,反之亦然 。通常情況下,Emacs在插入右括號時會立即指示匹配的 左括號。 *注意 閃爍::。
在人類語言,並且在C代碼,括號對是
()
,[]
,和{}
。在Emacs Lisp中,列表和 矢量(()
和[]
)的分隔符被分類爲括號字符。
要添加到上面的答案,在一個字符串中,'\'是一個特殊字符,所以需要轉義爲'\\'。所以在字符串處理之後,'\ s「'變成'\ s'這是對正則表達式的Emacs擴展,以處理解析編程語言(用於語法突出顯示等)中經常遇到的情況。 [markdown在某些情況下也需要特殊處理]' – JSON
Emacs Lisp將「\\ s」傳遞給C程序以匹配字符串?謝謝,我明白了。 –