簡體   English   中英

Emacs regexp沮喪

[英]Emacs regexp frustration

有人可以解釋為什么這個Emacs regexp

find_class \(\w+|([^)]+)\) \(\w+|([^)]+)\)

這些行中的任何一行都不匹配?

let _, scn, _ = find_class (obj :: cs) c in scn

aux (find_class (obj :: cs) scn) (cn :: desc)

let _, scn, ms = find_class c cs in

看起來很簡單:我正在尋找函數的調用,其中參數可以顯示為單個單詞或帶括號的arbirary字符串。 當我將一個等效的表達式( find_class (\\w+|\\([^)]+\\)) (\\w+|\\([^)]+\\)) )插入Ruby時,它會做我想要的,但不是這里。 我錯過了什么嗎?

我發現Emacs的regexp在實際使用中非常麻煩,我正在重新考慮我選擇的編輯器。 如果有一種合理的方法來改進這一點(即更簡潔的語法,更多的字符類),我很想聽到它,但我還沒有找到任何東西。

我想你需要\\| 在emacs正則表達式中實現與|相同的效果 在Ruby中。

Re:很麻煩,看看Emacs的regexp文檔會有所幫助:

http://www.gnu.org/software/emacs/manual/html_node/elisp/Syntax-of-Regexps.html

第3節“Regexp反斜杠”包含了nhahtdh已經指出的問題的答案。 不要忘記Emacs的正則​​表達式語法早於POSIX標准。

此鏈接顯示Emacs正則表達式與大多數其他正則表達式的不同之處:

http://emacswiki.org/emacs/RegularExpression

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM