python - 将字符串的特定部分用于数组 [python]
问题描述
我有一个字符串的文本列表:
3814-F76A-2451 -54 -59.1 61 4.03051 -0.0595874 2 月 27 日 13:33:23.044623
3014-F56A-2454 -73 -60 -63 127 4.40527 0.828709 2 月 27 日 13:332:
01.6926 -51 -53.4 13 4.36092 -0.895371 2 月 27 日 13:34:26.504497
我想从这些子字符串(十六进制)中创建一个数组,第一个条目是3814F76A2451,第二个是3014F56A2454等等。
提前感谢您的时间!
解决方案
如果子字符串总是 14 个字符,您可以从每个字符串中获取它们
strings = ['3814-F76A-2451 -54 -59.1 61 4.03051 -0.0595874 Feb-27 13:33:23.044623',
'3014-F56A-2454 -73 -60 -63 127 4.40527 0.828709 Feb-27 13:32:01.692607',
'3414-F76A-2451 -65 -51 -53.4 13 4.36092 -0.895371 Feb-27 13:34:26.504497']
substrings = [s[:14].replace('-', '') for s in strings]
如果长度可以改变,用空格分割每个字符串并取第一个结果
substrings = [s.split(' ')[0].replace('-', '') for s in strings]
输出
# ['3814F76A2451', '3014F56A2454', '3414F76A2451']
编辑:
如果字符串是长文本的一部分,要回答评论,您可以从中获取所有匹配xxxx-xxxx-xxxx
格式的子字符串
text = '3814-F76A-2451 3814sF76A-2451 -54 -59.1 61 4.03051 -0.0595874 Feb-27 13:33:23.044623 3014-F56A-2454 -73 -60 -63 127 4.40527 0.828709 Feb-27 13:32:01.692607 3414-F76A-2451 -65 -51 -53.4 13 4.36092 -0.895371 Feb-27 13:34:26.504497'
strings = [t[:14].replace('-', '') for t in text.split(' ') if re.match('^[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}', t)]
推荐阅读
- c# - GameObject 算作已销毁但并未真正销毁
- swiftui - 如何更改 NavigationView 上的后退按钮的颜色
- python - Python Pandas:用行上的条件标记数据
- php - 路线未定义laravel 5.2
- unity3d - 修改实例化预制件的父级会引发错误
- c - 在 OS X 上安装 libwebsockets
- javascript - 每次按键时如何修复玩家越来越远的移动
- angular - 如何在 Angular 中的父模块和子模块之间共享模块
- python - 正则表达式表示一个字母后跟空格和引号 (")
- javascript - 无法在谷歌云计算实例上运行 pm2