我正在尝试在emacs lisp中编写一个匹配多行注释的正则表达式。
例如:
{-
Some
Comment
Here
-}
应该作为评论匹配。基本上,{ - 和 - }之间的任何东西。我几乎可以通过以下方式来做到这一点:
"\{\-[^-]*\-\}"
但是,如果评论中包含-
并未紧跟}
因此,在这种情况下它将无法正确匹配:
{-
Some -
Comment -
Here -
-}
哪个应该有效。
基本上,我希望在序列-}
提前致谢!
答案 0 :(得分:1)
为此类案例制作了一个工具包。它附带一个解析器,beg-end.el。
仍然要编写一个函数,它将确定开始的resp。对象的结尾。
在伪代码中:
(put 'MY-FORM 'beginning-op-at
(lambda () (search-forward "-}")))
(put 'MY-FORM 'end-op-at
(lambda () (search-backward "{-")))
完成后,它应该可用,即像这样复制和返回
(defun MY-FORM-atpt (&optional arg)
" "
(interactive "p")
(ar-th 'MY-FORM arg))
在此处获取:
答案 1 :(得分:1)
这不适合你吗? {-[^-]*[^}]*-}
(你没有准确地指明事情,所以我只是猜测你想要什么。{-
和-}
必须在行开头吗?它们必须自己排队吗?必须它们之间还有其他一些字符吗?等等。例如,它应该匹配这样的一行吗?{--}
?)