2012-01-26 107 views
3

我正在爲emacs創建一個簡單模式來查找某些標記標記。其中一件事是在雙曲花括號之間標註腳註。 {{像這樣}}我遇到了麻煩,使用正則表達式"\\(\\{[^}]*\\}"。我覺得我非常接近,但正則表達式會導致很多問題。我錯過了這種模式的工作?在Emacs正則表達式中匹配雙花括號?

回答

1

這個模式匹配一​​個或多個字符用雙花括號:

\{\{[^}]+\}\} 

在你的模式進行第一開括號是一個普通一個( ...

+0

非常感謝! –

+0

emacs是否具有超前性?如果是這樣,內部表達式不應該是'[^}] +',而是'((?!\} \})。)+'。 – Tomalak

+0

這個答案對Emacs真的有用嗎?如果你想在Emacs的老派正則表達式中進行字面匹配,不應該使用'{'和'}''。 @Tomalak這裏使用零寬度斷言有什麼好處? –

4

你們在說什麼? \{..\}是Emacs regexps中的重複操作符,所以如果你想匹配{和}你不要想逃避它們。

E.g.我會使用類似"{{\\([^}]\\|}[^}]\\)*}}"