Python:模式的意外结束

时间:2013-05-28 13:54:06

标签: python

此正则表达式用于删除所有php注释。你能检查正则表达式吗?

content = ""
    with open(file_path, 'r') as content_file:
        content = content_file.read()

re.sub(r"""(?|(?:#|//)([^\r\n]*)|/\*([\s\S]*?)\*/)""", "", content)

我的正则表达式有什么问题?感谢。

1 个答案:

答案 0 :(得分:0)

部分(?|(?:#|//)中肯定有问题 问号作为第一个paren (的量词。{ 然后你的正则表达式模式相当于

('(?'
 '|'
 '(?:#|//)([^\r\n]*)'
 '|'
 '/\*([\s\S]*?)\*/)'
 )

如果您测试re.compile('(?|a'),您将获得与您关联的错误相同的错误:unexpected end of pattern

顺便说一句,[\s\S]代表任何字符\n;您可以使用包含标记.

的点re.DOTALL替换它