0

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

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

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

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

4

1 回答 1

0

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

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

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

顺便说一句,[\s\S]代表任何字符,\n包括;您可以将其替换为.带有标志的点re.DOTALL

于 2013-05-28T14:36:07.587 回答