Elisp中的Regexp包含换行符

wun*_*nki 7 regex emacs elisp

我正在尝试在emacs(python-mode)中为Python文档字符串添加一个特殊标记.

目前我能够提取一行:

(font-lock-add-keywords
 'python-mode
 '(("\\(\"\\{3\\}\\.+\"\\{3\\}\\)"
    1 font-lock-doc-face prepend)))
Run Code Online (Sandbox Code Playgroud)

这现在有效:

"""Foo"""
Run Code Online (Sandbox Code Playgroud)

但是很快就会有一个换行符:

"""
Foo

"""
Run Code Online (Sandbox Code Playgroud)

它不再起作用了.这是合乎逻辑的,因为.不包括换行符(\n).我应该使用角色类吗?

如何更正此正则表达式以包含之间的所有内容""" """

提前致谢!

hua*_*uan 2

"\\(\"\\{3\\}\\(.*\n?\\)*?\"\\{3\\}\\)"
Run Code Online (Sandbox Code Playgroud)

这 ”*?” 构造是“*”的非贪婪版本。