我正在尝试使用Python 3中的正则表达式在PHP源代码中查找注释块。PHP注释采用以下格式:
/**
* This is a very short block comment
*/
现在我想出了以下正则表达式:
'/\*\*[.]+?\*/'
我认为-与DOTALL标志结合使用-应该可以,但不能。它什么也没找到。奇怪的是,当我删除结尾的斜杠时,如下所示:
'/\*\*[.]+?\*'
然后找到以下字符串:
/**\n\t*
我不知道为什么正则表达式找不到星号后跟斜线…我检查了我要仔细检查的文件,以检查我的注释中没有错字(我没有)。另外,在正则表达式中斜杠不是特殊字符,因此我不必逃脱它。(我尝试过,但没有帮助。)
谁能告诉我我的正则表达式怎么了?:)
顺便说一句,我也遇到了这个!有人尝试在Java中执行相同操作的线程。最终的胜利答案以现在的方式完成了他的正则表达式,所以我一无所知:(这可能是Python正则表达式中的错误,还是我完全错过了一些东西?
任何帮助深表感谢!:D
您可以使用该re.DOTALL
标志使.
字符与换行符匹配:
re.compile(r'/\*\*.+?\*/', re.DOTALL)
(请注意,PHP块注释可以以开头/*
,而不仅仅是/**
。)。