当前位置: 首页 > 面试题库 >

Python 3正则表达式查找多行注释

江嘉悦
2023-03-14
问题内容

我正在尝试使用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块注释可以以开头/*,而不仅仅是/**。)。



 类似资料: