我一直在寻找一段时间,并且在我正在寻找的东西中没有任何运气。简单地说,我有一个长字符串,我想从它中删除唯一标识符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并且说实话它让我感到困惑。所以我很抱歉做个菜鸟,但也许我得到了一个有效的例子在我的情况下,碎片将落在一起。
亲切的问候, 符号
答案 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']