如何在Python Pandas中仅移除字符串中带括号的数字?
解决方案
你需要匹配的是括号内仅包含纯数字的部分,之前的正则会匹配所有括号内容,所以才会误删。正确的正则应该限定括号内只能是数字:
import re # 测试用例 test_cases = [ "Hello World(4353)", "Hello World(ABC)", "Satbaulia Khurd(159ds)" ] # 正确的正则:匹配括号内全是数字的情况 pattern = r'\(\d+\)' for s in test_cases: res = re.sub(pattern, "", s) print(f"输入: {s}") print(f"输出: {res}\n")
输出结果:
输入: Hello World(4353) 输出: Hello World 输入: Hello World(ABC) 输出: Hello World(ABC) 输入: Satbaulia Khurd(159ds) 输出: Satbaulia Khurd(159ds)
正则说明:
\(:匹配左括号(需转义,因为括号在正则中是特殊语法字符)\d+:匹配1个或多个连续数字\):匹配右括号(同样需转义)
这个正则只会精准匹配(纯数字)格式的内容,其他包含非数字字符的括号部分会被完整保留,完全符合你的需求。
内容的提问来源于stack exchange,提问作者user8274471
相关产品推荐
相关产品推荐

