目录
背景
在平时开发时难免会碰到这样的场景,想通过已有的多行文本匹配数据库值或者向后端接口发送数据,若当前文本格式如下图所示时,则需要进一步手动处理。
在线处理
当处于网络环境良好环境下,且数据非敏感时,则可考虑通过在线工具一键处理。
本地处理
如果无法连接网络,而又具有文本编辑器或其它编程工具(如VSCode、NotePad++、SublimeText等),可利用正则表达式来实现对文本的快速处理。
正则表达式
添加双引号
查找目标
^(.*)$
替换目标
"$1",
表达式解析
^:匹配行的开头。
(.*)$:捕获任意数量的字符,尽可能多地匹配(贪婪匹配)。这里的
.*
会匹配每一行的所有内容,$表示匹配行尾。"$1",:将正则匹配到的值使用 " " ,(双引号及逗号)包裹起来,$1 表示正则匹配的第一个个捕获组
VSCode
此处使用VSCode演示,其它工具操作方式大同小异。在VSCode中使用Ctrl+H快速调出替换工具栏,并填写上述的正则表达式,具体操作如下:
最终效果如下图所示 ,需要注意最后一行也被加上了逗号,使用时按需删除即可。
合并为一行
上一步中已经完成了对多行文本双引号的添加,但是如果想要在此基础上将多行转为一行应该如何处理呢?同样可以使用正则表达式实现。
查找目标
(\r?\n)
替换目标(置空)
这一步中替换目标不用填入任何表达式,置空即可。
效果
最终效果如下图所示 ,需要注意尾部也被加上了逗号,使用时按需删除即可。
整合
上述两步操作可通过修改查找目标的表达式来一并实现,具体如下:
查找目标
^(.*)(\r?\n|$)
替换目标
"$1",
效果
效果与上述两步操作结果一致,需要注意尾部也被加上了逗号,使用时按需删除即可。
浏览器处理
如果当前既没有网络,也没有相关工具,那么还可以通过浏览器控制台使用执行JS代码的方式进行操作,具体操作如下:
控制台
在浏览器页面按下F12快捷键出现控制台页面,并粘贴如下代码,特别注意:文本需按照原有的格式粘贴,即文章开头中图片内的格式,并且内容需要使用 ` ` 引起来(ESC键下的符号)。
// 待处理的多行字符串
let multiLineText = `64CBF7e01BE72761
ee768b0f191Fe753
a710233bE38D09A9d251a70
7D108A48Ff335696
02876545b3Cc37Ad`;
// 将多行字符串拆分成数组
let lines = multiLineText.split('\n');
// 处理每一行,添加双引号和逗号(最后一行除外)
let formattedLines = lines.map((line, index) => {
if (index === lines.length - 1) {
return `"${line}"`; // 最后一行不加逗号
} else {
return `"${line}",`; // 其他行加逗号
}
});
// 将处理后的行合并成一个字符串
let formattedText = formattedLines.join('\n');
// 输出结果
console.log(formattedText);
效果
调整好需要处理的文本后,按下回车即可。