我想转换下面的字符串
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