删除带有空格的子字符串



我想转换下面的字符串

JS00001.mat 16+24 1000/mV 16 0 -5 28232 0 aVR

到python中的这个字符串

-5 28232 0 aVR

我可以用这个代码

regex = r'JS[0-9][0-9][0-9][0-9][0-9].mat 16+24 1000/mV 16 0 '
s = re.sub(regex,"",'JS00001.mat 16+24 1000/mV 16 0 517 -22376 0 III')

但不能删除这部分

JS00001.mat 16+24 1000/mV 16 0

注意这一点,这是Js00001,它不是恒定的,每一行数据帧都不同(517 -22376也是)。

请帮帮我。

据我所知,您需要字符串的最后4个值。不使用正则表达式也可以这样做,如下所示:

string = r"JS00001.mat 16+24 1000/mV 16 0 -5 28232 0 aVR"
last_four_values = string.split(maxsplit=5)[-1] 
last_four_values = " ".join(string.split()[-4:]) # Or another way
print(last_four_values)

输出:

-5 28232 0 aVR

还有哪些字符串需要转换?

:

  • https://docs.python.org/3/library/stdtypes.html str.join
  • https://docs.python.org/3/library/stdtypes.html str.split

.*(-5 28232 0 aVR)->这个正则表达式将匹配整个字符串,并且在()的帮助下捕获所需的字符串,将其存储在反向引用1中,并且它已经替换了整个字符串并将其分配给变量结果。我已经在下面的代码中实现了它。

import re
regex = r".*(-5 28232 0 aVR)"
test_str = "JS00001.mat 16+24 1000/mV 16 0 -5 28232 0 aVR"
subst = "\1"
result = re.sub(regex, subst, test_str)
if result:
print (result)

# Ouput

-5 28232 0 aVR

相关内容

  • 没有找到相关文章

最新更新