我已经在 uni 中为相对简单的表达式编写了正则表达式,但现在我正在努力使这个正确。一个句子可能看起来像这样:
"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] 来匹配 +组后。
请您参考如下方法:
你可以使用
re.sub(r'(?:\[\d+])+$', '', text)
正则表达式匹配
(?:- 非捕获组的开始(用于对一系列较小的模式进行分组,这些模式将在它们立即连续出现时进行匹配)\[-[字符\d+- 1+ 位]-]字符
)+- 一次或多次重复$- 字符串结尾。
参见 regex demo .
