我有一个包含很多杂音的字符串,我只想删除字符串左右两侧的符号。
|«_ Date: 23/12/18 16:41 ($123) :}‘'
使用我目前的方法,我可以删除所有这些符号,但是它也包括位于中心的符号,我不打算这样做。
re.sub(r"[^a-zA-z0-9,./$ ' ' -]", "", s)
我理想的结果是这样
Date: 23/12/18 16:41 ($123)
答案 0 :(得分:1)
现在这是一个非常粗糙的模式,有很多警告。它满足了您上面的示例字符串,但是我可以预见,您可能会得到很多错误的匹配。由于我不知道字符串的结构,因此很难进一步完善。
^(.*?)(?:[0-9a-zA-Z].*?\))(.*?)$
上面的模式将所有前导字符捕获为组1,并将右括号后的所有尾随字符捕获为组2。但是,如果有效字符串中还有另一对括号,则在结尾(123)
之前,它将陷入混乱起来。请参见下面的示例。
答案 1 :(得分:0)
@potato的解决方案非常适合我的用例。
相关的regex命令应为
解决方案
re.sub(r"(?i)^[^a-z\d()]*|[^a-z\d()]+$", "", s)