re.sub删除字符串后的8个字符

时间:2018-01-29 13:18:00

标签: python regex

我一直在寻找一段时间,并且在我正在寻找的东西中没有任何运气。简单地说,我有一个长字符串,我想从它中删除唯一标识符JF32-000001007。但是我似乎无法使用re.sub找到正确的方法。

我想也许我可以做一些事情来影响: * =示例中的外卡 发现:J **** - *********并且没有替换。我保留J和 - 的原因是因为它们是一致的。其他一切都在变化。到目前为止我所得到的是以下内容:

import re
string = "E/Exception ['thisdevice:JFW32-000001007.IdName = telephonepole (null) has no hope, magic will be discard']"

final = re.sub(r'J.*?-', '', string)
print final

这只是取代了前半部分而不是数字

import re
string = "E/Exception ['thisdevice:JFW32-000001007.IdName = telephonepole (null) has no hope, magic will be discard']"

final = re.sub(r'E.*?{14}', '', string)
print final

这会引发一个异常,说明其不正确(我不认为我正确使用它)

我试图阅读https://docs.python.org/2/library/re.html#re.sub并且说实话它让我感到困惑。所以我很抱歉做个菜鸟,但也许我得到了一个有效的例子在我的情况下,碎片将落在一起。

亲切的问候, 符号

2 个答案:

答案 0 :(得分:1)

怎么样

re.sub(r'J.{4}-.{9}', '', string)

匹配' J'后跟四个字符,然后是' - ',后跟9个字符。

答案 1 :(得分:1)

import re
string = "E/Exception ['thisdevice:JFW32-000001007.IdName = telephonepole (null) has no hope, magic will be discard']"

final = re.sub(r'J[\w\d]+\-[\d]+', '', string)
print final
>>>E/Exception ['thisdevice:.IdName = telephonepole (null) has no hope, magic will be discard']