在Python中遇到某个字符之前,如何删除字符串?

时间:2015-04-10 08:13:59

标签: python string

我有一个非常长的文件,其中有一些随机的GPS乱码,我想删除它。基本上,一切都在,但有时你会得到这样的东西:

<gibberish <data data> - 多个左括号,无需关闭。问题是胡言乱语的长度各不相同。如何找到并更换乱码部分? - 在这个例子中,"<gibberish "?我认为这可能是在python中完成的,但任何语言都可以。

2 个答案:

答案 0 :(得分:0)

您可以使用re.sub功能。

>>> s = '<E,104,55793,329,G858B,0 48800.780 48805.424 08:37:47.55 01/08/26 0> <E,104,56294,334,G858B,0 48800.690<E,104,56392,335,G858B,0 48800.638 48805.410 08:37:48.15 01/08/26 0>'
>>> re.sub(r'<[^<>]*<', r'<', s)
'<E,104,55793,329,G858B,0 48800.780 48805.424 08:37:47.55 01/08/26 0> <E,104,56392,335,G858B,0 48800.638 48805.410 08:37:48.15 01/08/26 0>'

答案 1 :(得分:0)

你可以通过找到最后一个开放式括号的索引,并从那一点开始采取一切措施来做到这一点:

source = '<E,104,56294,334,G858B,0 48800.690<E,104,56392,335,G858B,0 48800.638 48805.410 08:37:48.15 01/08/26 0>'
data = source[source.rfind('<'):]