python - 提取多个垂直条之间的所有数据

标签 python regex

我有一个混合了 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))

Output

关于python - 提取多个垂直条之间的所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48385960/

相关文章:

python - 从 Component 类访问 Composite 类字段

Python函数: UnboundLocalError: local variable 'tuple' referenced before assignment

python - 如何使用 os.listdir 只选择一个文件类型?

javascript - RFC 2822 和 ISO 8601 日期格式正则表达式

php - 将 ereg 语句转换为 preg

javascript - 在 JavaScript 中更改字符串中的字符

python - 如何忽略失败的测试?

python - 让 scipy 的 rv_discrete 处理浮点值?

java - 正则表达式:想要更改一组字母后面的字母大小写,HTML 实体除外

java - 使用 string.matches 检查最后一个字符是否为元音