【问题标题】:Python: Using Regex to remove text with "{ }"Python:使用正则表达式删除带有“{}”的文本
【发布时间】:2016-01-23 10:27:35
【问题描述】:

通常当我想在 python 中使用正则表达式删除两个字符串之间的文本时,我会这样做:

s = re.sub('z1.*?AA', '', s, flags=re.DOTALL)

s 是我的文本,我使用上面的代码删除了 z1AA 之间的所有内容(包括 z1 和 AA)。但现在我正在努力为以下内容做同样的事情:

我有以下字符串(来自乳胶 .txt 文件):

\begin{tabular}{lccccc}
\toprule
            &            &            &            &            &             \\
            &    (0)     &    (1)     &    (2)     &    (3)     &    (4)      \\
\hline
\hline
\end{tabular}
\begin{tabular}{llllll}

我的目标是替换最后一行从\toprule 到最后一个} 的所有内容。 我尝试了几种正则表达式组合,例如.*?\{} 等,但没有成功……我做错了什么?

【问题讨论】:

  • 你为什么不尝试使用解析器?

标签: python regex


【解决方案1】:

你可以使用:

s = re.sub(r'\\toprule.*}', '', s, flags=re.DOTALL)

RegEx Demo

re.DOTALL 使 DOT 匹配任何字符,包括换行符和贪婪 .* 确保匹配输入中的最后一个 }

【讨论】:

  • 天哪!谢谢你。工作完美。睡前学了点东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-16
  • 2022-08-17
  • 1970-01-01
  • 2019-05-02
  • 1970-01-01
相关资源
最近更新 更多