用于Python单行和多行注释的正则表达式

时间:2018-10-15 12:34:07

标签: c# python regex comments

我要用C#制作Python编辑器。我想为Python的单行和多行注释编写一个正则表达式。我试图在C#中针对单行和多行注释修改此表达式,但我无法这样做,因为在C#中它们使用/**/,因此我们可以知道哪个是开始或结束。但是在Python中,它们仅使用“”“(或'''),因此我们不知道哪个是开始或结束。

C#的正则表达式:

/\*(?:(?!\*/).)*\*/

Python中的单行和多行示例

单行:

''' comment comment '''

""" comment comment """

多行

''' comment comment
comment comment
'''

""" comment comment
comment comment
"""

2 个答案:

答案 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

Demo