尝试这个:
re.compile(r"^(.+)n((?:n.+)+)", re.MULTILINE)
我认为您的最大问题是,您期望
^和
$定位符匹配换行符,但它们不匹配。在多行模式,
^匹配立即位置 以下 换行符和
$立即位置相匹配 前
一个换行符。
同样要注意,换行符可以由换行符( n),回车符( r)或回车符+换行符( r
n)组成。如果不确定目标文本仅使用换行符,则应使用此更广泛的正则表达式版本:
re.compile(r"^(.+)(?:n|rn?)((?:(?:n|rn?).+)+)", re.MULTILINE)
顺便说一句,您不想在这里使用DOTALL修饰符;您依赖点与换行符 以外的 所有内容都匹配的事实。



