我曾在单写的正则表达式为相对简单的表达式,但现在我努力让这个权利。一个句子可能是这样的:

"Sentences can have no index in the end."
"Or one index.[10]"
"Or there even. Can be. Multiple sentences. And indices.[9][10][11]"

我想切断指数到底,就回到了一句。这是我第一次(为了公平起见这里很天真)做法:.*(\[\d+\])+。但它并不完全做我需要。我觉得我在正确的小组是正确的。但.*没有做正确的事,因为那时它只会匹配任何,并采取最后[0]到小组赛+after。

分析解答

您可以使用

re.sub(r'(?:\[\d+])+$', '', text)

正则表达式匹配

  • (?: - 一个non-capturing组(成组的,当他们出现在眼前陆续将要匹配更小的模式序列)的开始
    • \[ - 一个[
    • \d+ - 1+数字
    • ] - 一个]字符
  • )+ - 一次或多次重复
  • $ - string结束。

正则demo