我有一个混合了 ASCII 和十六进制数据的字符串。我想计算字符串的长度(以字节为单位)。两个竖线之间的数据代表十六进制数据。
示例:s =“2|00 00 00 06 00 00 00|驱动器|24 00|”。对于该字符串,长度应为 16 个字节,因为两个十六进制数字代表一个字节。我尝试使用正则表达式提取柱之间的数据:r'|.(.*?)|'但这匹配整个字符串。有什么帮助吗?谢谢
import re
s= "2|00 00 00 06 00 00 00|Drives|24 00|"
match = re.findall(r'|.(.*?)|', s)
最佳答案
我认为你必须像\|
一样转义|
来匹配管道,否则它会意味着或
。您也可以省略这部分中的点 |.(
import re
s= "2|00 00 00 06 00 00 00|Drives|24 00|"
print(re.findall(r'\|(.*?)\|', s))
关于python - 提取多个垂直条之间的所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48385960/