如何用Python的re模块移除字符串末尾含内容的括号?
使用Python re模块移除字符串末尾的括号组
核心思路是用正则表达式精准匹配字符串末尾的带内容括号组(括号前可能有空格),然后将其替换为空。
正则表达式说明
使用的正则模式:r'\s*\([^)]+\)$'
\s*:匹配括号前可能存在的0个或多个空格(比如第三个案例里的" (6)")\(:转义匹配左括号(避免被当作正则分组符号)[^)]+:匹配括号内的任意内容(只要不是右括号,保证括号非空)\):转义匹配右括号$:锚定到字符串结尾,确保只处理最后一组括号
代码实现与测试
import re def clean_filename(filename): # 替换末尾的括号组 return re.sub(r'\s*\([^)]+\)$', '', filename) # 测试给定案例 test_data = [ ("test(1)", "test"), ("test2(1)", "test2"), ("test3(note to self) (6)", "test3(note to self)") ] for input_name, expected_out in test_data: output = clean_filename(input_name) print(f"{input_name} → {output} {'✅' if output == expected_out else '❌'}")
运行这段代码后,三个测试案例都会得到预期的结果,既保留了字符串中间的括号内容,又精准移除了末尾的目标括号组。
内容的提问来源于stack exchange,提问作者notacorn
相关产品推荐
相关产品推荐

