繁体   English   中英

从字符串中去除大括号内最后出现的数字

[英]Strip the last occurrence of numbers inside braces from a string

如果给定字符串中只有数字/数字,我想知道如何去除 ( ) 的最后一次出现及其内容。

下面的代码去除了字符串中的所有 ( )。

 import regex
    s1 = "( 2,2,2) (GREATER) MINDS LIMITED ( 23 )"
    s2 = "( 2,2,2) (GREATER) MINDS LIMITED  ( closed )"
    res = regex.sub(r'\s*(\((?>[^()]+|(?1))*\))$', '', s1)
    res = regex.sub(r'\s*(\((?>[^()]+|(?1))*\))$', '', s2)
    print(res)

这将删除字符串内的内容,但我只想删除字符串最后出现的 () 内的数字或数字

output:

 s1 = "( 2,2,2) (GREATER) MINDS LIMITED ( 23 )"
 s2 = "( 2,2,2) (GREATER) MINDS LIMITED  ( closed )"

您可以将re.sub与否定前瞻断言一起使用,该断言排除了在最后一场比赛之后出现的任何其他术语(...)

s1 = "( 2,2,2) (GREATER) MINDS LIMITED ( 23 )"
s2 = "( 2,2,2) (GREATER) MINDS LIMITED  ( closed )"
out1 = re.sub(r'\(\s*\d+\s*\)(?!.*\([^)]*\))', '', s1)
out2 = re.sub(r'\(\s*\d+\s*\)(?!.*\([^)]*\))', '', s2)
print(out1)
print(out2)

这打印:

( 2,2,2) (GREATER) MINDS LIMITED 
( 2,2,2) (GREATER) MINDS LIMITED  ( closed )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM