有人可以解释为什么这个 Emacs 正则表达式
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
看起来很简单:我正在寻找函数的调用,其中参数可以显示为单个单词或带括号的任意字符串。当我将等效表达式 ( find_class (\w+|\([^)]+\)) (\w+|\([^)]+\))
) 插入 Ruby 时,它会执行我想要的操作,但不是在这里。我错过了什么吗?
我发现 Emacs 的正则表达式对于实际使用来说真的很麻烦,以至于我正在重新考虑我选择的编辑器。如果有一种合理的方法来改进这一点(即更简洁的语法,更多的字符类),我很想听到它,但我还没有找到任何东西。