python正则表达式重复特定模式

时间:2017-11-15 01:04:54

标签: python regex

我有一些字符串数据包含颜色编码的字符..我试图使用re.sub删除它们,但我无法弄清楚如何重复我的模式。我以为+?因为它声明一次或多次重复非贪婪。但它只删除字符串中的“[0m”而不是“[32m”

@Component
public class ImagesHandlerImpl implements ImagesHandler, InitializingBean {
  @Override
  public void afterPropertiesSet() throws Exception {
    System.setProperty("java.awt.headless", "false");
  }

  public boolean doScreen() throws Exception {
    //...
  }
}

如何制作一个正则表达式,将删除上面组合的任何实例,在此实例之间保留文本“OK”?

我的最终目标是保留介于[32和[0m之间]的OK文本... OK可能会说FAILED或ERROR就像这样[32mFAILED [0m,[32mERROR [0m

1 个答案:

答案 0 :(得分:3)

您可以尝试使用以下模式:

test = re.sub(r'(?:\[\d+m)', '', test)

这表示匹配[后跟任意数字的数字,后跟m。请注意,这会在m之后保留完整的任何内容。

Demo