我正在尝试在 emacs(python 模式)中向 Python 文档字符串添加特殊标记。
目前我能够提取一行:
(font-lock-add-keywords
'python-mode
'(("\\(\"\\{3\\}\\.+\"\\{3\\}\\)"
1 font-lock-doc-face prepend)))
这现在有效:
"""Foo"""
但是很快就会有一个换行符,比如:
"""
Foo
"""
它不再起作用了。这是合乎逻辑的,因为
.
不包括换行符( \n
)。我应该使用字符类吗?
如何更正此正则表达式以包含
""" """
之间的所有内容?提前致谢!
最佳答案
"\\(\"\\{3\\}\\(.*\n?\\)*?\"\\{3\\}\\)"
这 ”*?”构造是“*”的非贪婪版本。
关于Elisp 中的正则表达式以包含换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/320590/