我要用C#制作Python编辑器。我想为Python的单行和多行注释编写一个正则表达式。我试图在C#中针对单行和多行注释修改此表达式,但我无法这样做,因为在C#中它们使用/*
和*/
,因此我们可以知道哪个是开始或结束。但是在Python中,它们仅使用“”“(或'''),因此我们不知道哪个是开始或结束。
C#的正则表达式:
/\*(?:(?!\*/).)*\*/
Python中的单行和多行示例
单行:
''' comment comment '''
""" comment comment """
多行
''' comment comment
comment comment
'''
""" comment comment
comment comment
"""
答案 0 :(得分:0)
诸如此类的可以起作用:/("""[^"]*+"""|'''[^']+'''|#[^\n]*)/
除 ...
虽然#stuff
明确表示注释,但'''this one'''
和"""this
(next line)
other"""
不一定是单行/多行注释,它们只是字符串。三重(单/双)引号表示法是可拆分为多行的字符串。
例如,这是有效的Python代码。
s="""My name is Alice.
My name is Bob."""
这也是。
eggs("""spam, sausages,
spam, spam, spam""")
。
准确的答案应至少排除上述两种情况。
答案 1 :(得分:0)
尝试使用正则表达式:("""|''')[\s\S]*?\1