您需要
re.MULTILINE用
re.DOTALL/替换,
re.S并在字符类外移出句点,因为它在字符类内,点与文字匹配
.。
请注意,
re.MULTILINE只有重新定义的行为
^而
$被强制匹配在开始/结束 线 ,而不是整个字符串。该
re.DOTALL标志
仅在字符类外部* 重新定义
.模式内部的行为。它也开始匹配换行符。 *
因此,您可以在当前示例中使用的正则表达式:
。它相匹配的文字(具有匹配*/)。
参见代码演示:
txt = """n<?phpn\n$var = 1;n"""new_txt = re.sub(r'', '', txt, flags=re.S)print("n=========== TXT ============")print(txt)print("n=========== NEW TXT ============")print(new_txt)见IDEONE演示
但是,它不是最佳解决方案,因为在大多数情况下,多行注释非常长。最好是 展开循环 技术。上面的正则表达式可以像这样“展开”:
见正则表达式演示



