通常当我想在 python 中使用正则表达式删除两个字符串之间的文本时,我会这样做:
s = re.sub('z1.*?AA', '', s, flags=re.DOTALL)
s 是我的文本,我使用上面的代码删除 z1 和 AA 之间的所有内容(包括 z1 和 AA)。但现在我正在努力为以下内容做同样的事情:
我有以下字符串(来自 latex .txt 文件):
\begin{tabular}{lccccc}
\toprule
& & & & & \\
& (0) & (1) & (2) & (3) & (4) \\
\hline
\hline
\end{tabular}
\begin{tabular}{llllll}
我的目标是替换最后一行从 \toprule 到最后一个 的所有内容。 我尝试了几种正则表达式组合,例如 .*?\{} 和其他组合,但没有成功...我做错了什么?
请您参考如下方法:
您可以使用:
s = re.sub(r'\\toprule.*}', '', s, flags=re.DOTALL)
re.DOTALL 使 DOT 匹配任何字符,包括换行符和贪婪的 。* 确保匹配输入中的最后一个 }。
