我正在使用 Python 2.7.0 并在解释器中执行以下操作:
>>> re.search (r"//\s*.*?$", "//\n\na12345678", flags=re.MULTILINE|re.DOTALL).group()
'//\n\na12345678'
这不是我所期望的。我虽然 $ 会在结束行之前匹配,但它包括两个结束行字符和之后的文本?
令人惊讶的是,这有效:
>>> re.search (r"//\s*.*?$", "//1\n\na12345678", flags=re.MULTILINE|re.DOTALL).group()
'//1'
我在这里对 python 正则表达式有什么误解?
更多信息:
>>> re.search(r"//\s*.*", "//\n test").group()
'//\n test'
>>> re.search(r"//\s*.*", "//1\n test").group()
'//1'
最后一段代码没有 MUTLILINE 和 DOTALL?我在这里有什么误解?.* 不应该与换行符匹配,并且绝对不会超过它,对吗?