Python:如何查找并删除指定格式的带时间戳括号字符串及尾随空格?
解决方案
结论:必须用正则表达式,这是处理这类带固定前缀、可变中间内容、固定后缀的字符串替换需求的最优方式,列表推导或者split的思路确实搞不定这种非统一结构的内容。
正则匹配逻辑:
要匹配的内容是(string_to_delete_xxxxxx_xx-xx),可以写两种正则:- 宽松匹配(适用于时间戳格式不固定的情况):
\(string_to_delete.*?\)\(:转义匹配左括号(括号是正则特殊字符)string_to_delete:匹配固定前缀.*?:非贪婪匹配任意字符,直到遇到第一个右括号\):匹配右括号加尾随空格
- 精准匹配(如果时间戳格式固定为
_8位数字_2位数字-2位数字):\(string_to_delete_\d{8}_\d{2}-\d{2}\)\d{8}:匹配8位日期数字(比如20221012)\d{2}-\d{2}:匹配两位小时-两位分钟(比如11-36)
- 宽松匹配(适用于时间戳格式不固定的情况):
Python代码示例:
import re mystr = '(string_to_delete_20221012_11-36) keep this (string_to_delete_20221016_22-22) keep this (string_to_delete_20221017_20-55) keep this' # 精准匹配版本(推荐,避免误删) result = re.sub(r'\(string_to_delete_\d{8}_\d{2}-\d{2}\) ', '', mystr) # 或者宽松匹配版本 # result = re.sub(r'\(string_to_delete.*?\) ', '', mystr) print(result) # 输出:keep this keep this keep this
内容的提问来源于stack exchange,提问作者MrDave
相关产品推荐
相关产品推荐

