利用Sublime Text多重查找替换规则清洗传感器上报的不规则乱码数据

星辰大大_6251

星辰大大_6251

2026-08-16

954人浏览

原创

传感器原始数据在sublime中乱码是因文件编码不匹配,固件常用gbk或iso-8859-1,而sublime默认utf-8解码;需通过reopen with encoding切换编码,并先清理js、html注释及bom头再正则处理。

利用sublime text多重查找替换规则清洗传感器上报的不规则乱码数据

为什么传感器原始数据在Sublime里一查就乱码

不是正则写错了,是文件编码根本没对上。传感器固件常默认用 GBK 或 ISO-8859-1 输出,而 Sublime 默认按 UTF-8 解码,中文 这类 mojibake 就是典型症状。右下角显示 UTF-8 却满屏乱码?先别碰正则,点 File → Reopen with Encoding 试 Chinese Simplified (GBK) 或 Western (ISO 8859-1) —— 能看清中文或数字,说明编码找对了。

清洗前必须删掉干扰块:JS脚本、HTML注释、BOM头

传感器上报数据混着 Web 页面片段很常见,比如带 <script></script> 块或 <!-- 注释 -->,它们会破坏行结构和字段边界。不先清理,^.*?sensor_id.*$ 这种查找会跨行失效或漏匹配。

  • 删 JS:<script>]*>[\s\S]*?</script>(勾选 . matches newline)
  • 删 HTML 注释:<!--[\s\S]*?-->
  • 删 BOM 头(尤其 UTF-8 文件开头的 ):^\uFEFF 或直接用十六进制查找 EF BB BF

注意:]*> 比 <.></.> 更安全,前者不会误吞 alt="A 这类属性里的小于号。

用否定字符集精准提取字段,避开 .*? 的坑

.*? 在传感器日志里极易跨字段——比如 temp=25.3&hum=60&status=OK 中,temp=(.*?)& 看似能取值,但若某条记录含 & 在值里(如 desc=low&battery),就会截断。必须用否定字符集锚定边界。

  • 取等号后、下一个 & 前的值:temp=([^&]+)
  • 取引号内内容(如 "voltage": "3.28V"):"voltage": "([^"]+)"
  • 匹配十六进制传感器 ID(如 id: 0xABC123):id:\s+0x([0-9A-Fa-f]{6})

所有模式都需勾选 Match case 和 . matches newline(如果数据跨行),否则 [^"] 遇换行就停住。

Sublime Text Build Linux版
Sublime Text Build Linux版

Sublime Text Linux x86-64 deb 安装包。官方也提供 rpm、tar.xz 和软件源安装方式。

下载

清洗后空行/粘连/乱码的三处致命细节

清洗完发现“温度湿度”连成一块、末尾多出空行、或中文又变方块——问题不在正则,而在三个隐性环节:

  • 块级结构丢失:删标签后 <p>25.3</p> <p>60</p> 变成 25.360,得先替换 <p>([^</p> → \n$1\n,再压缩连续空白
  • 全角空格没处理:\s+ 不匹配中文全角空格(\u3000),得单独搜 \u3000 替换为空格或删掉
  • 文件末尾无换行符:^$ 匹配不到最后一行空行,必须用 \s*\Z 替换,\Z 锚定文件结尾,比 $ 可靠

最易被忽略的是:清洗后的文件若仍显示乱码,不是正则失败,而是保存时没选对编码——务必用 File → Save with Encoding → UTF-8,否则下次打开还是 GBK 解码。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
传感器故障解决方法
传感器故障解决方法

传感器故障排除指南:识别故障症状(如误读或错误代码)。检查电源和连接(确保连接牢固,无损坏)。校准传感器(遵循制造商说明)。诊断内部故障(目视检查、信号测试、环境影响评估)。更换传感器(选择相同规格,遵循安装说明)。验证修复(检查信号准确性,监测异常行为)。

2024.06.04

4004

7

Linux 新手先学哪些命令
Linux 新手先学哪些命令

Linux新手命令专题汇集终端基础、文件目录操作、文本查看、软件安装和权限管理等入门文章,帮助按实际任务练习常用命令并建立命令行操作习惯。

2026.10.15

0

20

MySQL 忘记密码怎么办
MySQL 忘记密码怎么办

MySQL忘记密码专题汇集不同版本与系统下的root密码重置方法,覆盖MySQL 5.7、8.0、Mac、Linux及本地集成环境,并提示恢复权限与重新登录的检查步骤。

2026.10.15

0

18

Vue.js 中 ref 和 reactive 的区别
Vue.js 中 ref 和 reactive 的区别

Vue.js中ref和reactive的区别专题汇集两种响应式API的定义、访问方式、对象解构、侦听与性能取舍等文章,帮助结合实际状态类型选择合适写法。

2026.10.15

0

20

VS Code 怎么配置开发环境
VS Code 怎么配置开发环境

VS Code开发环境专题汇集编辑器安装、语言扩展、编译器、解释器、终端和调试配置文章,覆盖Java、Python、C++和PHP等常见语言的入门设置。

2026.10.15

0

18

C++ 开发环境怎么搭建
C++ 开发环境怎么搭建

C++开发环境专题汇集Windows、Linux下的编译器与IDE安装配置教程,涵盖GCC、Clang、Visual Studio、CLion和VS Code,以及编译运行首个程序的步骤。

2026.10.15

0

19

Python 虚拟环境是什么
Python 虚拟环境是什么

Python虚拟环境专题介绍项目依赖隔离的作用,汇集venv与uv创建、激活、退出及解释器切换的相关文章,并覆盖Windows、Linux和VS Code中的常见配置问题。

2026.10.15

0

15

Python 怎么安装并配置环境变量
Python 怎么安装并配置环境变量

Python安装与环境变量配置专题汇集Windows、macOS和Linux的安装步骤、PATH设置、pip配置及常见报错排查文章,帮助完成解释器安装并验证命令行可以正常运行。

2026.10.15

0

15

PHP 连接 MySQL 失败怎么办
PHP 连接 MySQL 失败怎么办

PHP连接MySQL失败专题汇集PDO与MySQLi扩展配置、账号权限、主机端口、套接字和认证方式等排查文章,覆盖连接报错、密码变更与容器环境配置,帮助按错误提示定位原因并修复。

2026.10.15

0

18

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程