notepad++配合正则表达式分组模式处理文本转化为sql语句

这篇具有很好参考价值的文章主要介绍了notepad++配合正则表达式分组模式处理文本转化为sql语句。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、正则分组知识点补充

正则分组和捕获

():用于分组和捕获子表达式。

大白话就是()匹配到的数据,通过美元符号加下标可以获取该数据,例如$1、$2, 下标从1开始。

下面的案例就采用该模式处理文本数据

二、使用正则的需求背景

有一份报表的数据,需要把数据入库到mysql数据库, 因为数据很多,不可能手动一个一个转,这里采用正则表达式,巧妙的转化为对应的sql;

报表数据如下:

notepad++配合正则表达式分组模式处理文本转化为sql语句,正则表达式,正则表达式,分组模式

转换为sql格式如下:

update menu set content_value = "[{\"label\":\"年订阅\",\"value\":1},{\"label\":\"月订阅\",\"value\":2}]" where id = 17;

因为id这一列在sql会作为where参数,这里调整下位置,放到后面一列

notepad++配合正则表达式分组模式处理文本转化为sql语句,正则表达式,正则表达式,分组模式

里面的数据包含双引号,sql语句特殊处理,需要采用正则表达式做字符串转义。

复制excel表格的文本到notepad++,数据如下:

[{"label":"苹果","value":1},{"label":"西瓜","value":2}]		17
[{"label":"苹果","value":1},{"label":"西瓜","value":2}]		19
[{"label":"苹果","value":1},{"label":"西瓜","value":2}]		21
[{"label":"没吃过","value":1},{"label":"已经吃过了","value":2}]		22
[{"label":"空","value":""},{"label":"免费","value":"免费"},{"label":"收费","value":"收费"}]		28
[{"label":"空","value":""},{"label":"免费","value":"免费"},{"label":"收费","value":"收费"}]		30
[{"label":"空","value":""},{"label":"免费","value":"免费"},{"label":"收费","value":"收费"}]		32
[{"label":"空","value":""},{"label":"免费","value":"免费"},{"label":"收费","value":"收费"}]		34
[{"label":"模式1","value":0},{"label":"模式2","value":1},{"label":"模式3","value":2}]		67
[{"label":"模式1","value":0},{"label":"模式2","value":1},{"label":"模式3","value":2}]		68
[{"label":"打开","value":true},{"label":"关闭","value":false}]		69
[{"label":"打开","value":true},{"label":"关闭","value":false}]		72

三、正则分组模式处理文本实践

3.1、字符串特殊符号转义

查找目标:"

替换为:\\\"

先标记

notepad++配合正则表达式分组模式处理文本转化为sql语句,正则表达式,正则表达式,分组模式

替换

notepad++配合正则表达式分组模式处理文本转化为sql语句,正则表达式,正则表达式,分组模式

双引号已接上反斜杠, 效果如下:

[{\"label\":\"苹果\",\"value\":1},{\"label\":\"西瓜\",\"value\":2}]		17
[{\"label\":\"苹果\",\"value\":1},{\"label\":\"西瓜\",\"value\":2}]		19
[{\"label\":\"苹果\",\"value\":1},{\"label\":\"西瓜\",\"value\":2}]		21
[{\"label\":\"没吃过\",\"value\":1},{\"label\":\"已经吃过了\",\"value\":2}]		22
[{\"label\":\"空\",\"value\":\"\"},{\"label\":\"免费\",\"value\":\"免费\"},{\"label\":\"收费\",\"value\":\"收费\"}]		28
[{\"label\":\"空\",\"value\":\"\"},{\"label\":\"免费\",\"value\":\"免费\"},{\"label\":\"收费\",\"value\":\"收费\"}]		30
[{\"label\":\"空\",\"value\":\"\"},{\"label\":\"免费\",\"value\":\"免费\"},{\"label\":\"收费\",\"value\":\"收费\"}]		32
[{\"label\":\"空\",\"value\":\"\"},{\"label\":\"免费\",\"value\":\"免费\"},{\"label\":\"收费\",\"value\":\"收费\"}]		34
[{\"label\":\"模式1\",\"value\":0},{\"label\":\"模式2\",\"value\":1},{\"label\":\"模式3\",\"value\":2}]		67
[{\"label\":\"模式1\",\"value\":0},{\"label\":\"模式2\",\"value\":1},{\"label\":\"模式3\",\"value\":2}]		68
[{\"label\":\"打开\",\"value\":true},{\"label\":\"关闭\",\"value\":false}]		69
[{\"label\":\"打开\",\"value\":true},{\"label\":\"关闭\",\"value\":false}]		72
3.2、组装sql,拼接前缀

查找目标:(\[\{)

替换为:update menu set content_value = "$1

notepad++配合正则表达式分组模式处理文本转化为sql语句,正则表达式,正则表达式,分组模式

已拼接上前缀,效果如下:

update menu set content_value = "[{\"label\":\"苹果\",\"value\":1},{\"label\":\"西瓜\",\"value\":2}]		17
update menu set content_value = "[{\"label\":\"苹果\",\"value\":1},{\"label\":\"西瓜\",\"value\":2}]		19
update menu set content_value = "[{\"label\":\"苹果\",\"value\":1},{\"label\":\"西瓜\",\"value\":2}]		21
update menu set content_value = "[{\"label\":\"没吃过\",\"value\":1},{\"label\":\"已经吃过了\",\"value\":2}]		22
update menu set content_value = "[{\"label\":\"空\",\"value\":\"\"},{\"label\":\"免费\",\"value\":\"免费\"},{\"label\":\"收费\",\"value\":\"收费\"}]		28
update menu set content_value = "[{\"label\":\"空\",\"value\":\"\"},{\"label\":\"免费\",\"value\":\"免费\"},{\"label\":\"收费\",\"value\":\"收费\"}]		30
update menu set content_value = "[{\"label\":\"空\",\"value\":\"\"},{\"label\":\"免费\",\"value\":\"免费\"},{\"label\":\"收费\",\"value\":\"收费\"}]		32
update menu set content_value = "[{\"label\":\"空\",\"value\":\"\"},{\"label\":\"免费\",\"value\":\"免费\"},{\"label\":\"收费\",\"value\":\"收费\"}]		34
update menu set content_value = "[{\"label\":\"模式1\",\"value\":0},{\"label\":\"模式2\",\"value\":1},{\"label\":\"模式3\",\"value\":2}]		67
update menu set content_value = "[{\"label\":\"模式1\",\"value\":0},{\"label\":\"模式2\",\"value\":1},{\"label\":\"模式3\",\"value\":2}]		68
update menu set content_value = "[{\"label\":\"打开\",\"value\":true},{\"label\":\"关闭\",\"value\":false}]		69
update menu set content_value = "[{\"label\":\"打开\",\"value\":true},{\"label\":\"关闭\",\"value\":false}]		72
3.3、拼接sql的后半截,并换行

查找目标:(\}\])\s{2}(\d{2})

替换为:$1\" where id = $2;\r

notepad++配合正则表达式分组模式处理文本转化为sql语句,正则表达式,正则表达式,分组模式

效果如下:

update menu set content_value = "[{\"label\":\"苹果\",\"value\":1},{\"label\":\"西瓜\",\"value\":2}]" where id = 17;

update menu set content_value = "[{\"label\":\"苹果\",\"value\":1},{\"label\":\"西瓜\",\"value\":2}]" where id = 19;

update menu set content_value = "[{\"label\":\"苹果\",\"value\":1},{\"label\":\"西瓜\",\"value\":2}]" where id = 21;

update menu set content_value = "[{\"label\":\"没吃过\",\"value\":1},{\"label\":\"已经吃过了\",\"value\":2}]" where id = 22;

update menu set content_value = "[{\"label\":\"空\",\"value\":\"\"},{\"label\":\"免费\",\"value\":\"免费\"},{\"label\":\"收费\",\"value\":\"收费\"}]" where id = 28;

update menu set content_value = "[{\"label\":\"空\",\"value\":\"\"},{\"label\":\"免费\",\"value\":\"免费\"},{\"label\":\"收费\",\"value\":\"收费\"}]" where id = 30;

update menu set content_value = "[{\"label\":\"空\",\"value\":\"\"},{\"label\":\"免费\",\"value\":\"免费\"},{\"label\":\"收费\",\"value\":\"收费\"}]" where id = 32;

update menu set content_value = "[{\"label\":\"空\",\"value\":\"\"},{\"label\":\"免费\",\"value\":\"免费\"},{\"label\":\"收费\",\"value\":\"收费\"}]" where id = 34;

update menu set content_value = "[{\"label\":\"模式1\",\"value\":0},{\"label\":\"模式2\",\"value\":1},{\"label\":\"模式3\",\"value\":2}]" where id = 67;

update menu set content_value = "[{\"label\":\"模式1\",\"value\":0},{\"label\":\"模式2\",\"value\":1},{\"label\":\"模式3\",\"value\":2}]" where id = 68;

update menu set content_value = "[{\"label\":\"打开\",\"value\":true},{\"label\":\"关闭\",\"value\":false}]" where id = 69;

update menu set content_value = "[{\"label\":\"打开\",\"value\":true},{\"label\":\"关闭\",\"value\":false}]" where id = 72;
3.4、最终数据展示效果

notepad++配合正则表达式分组模式处理文本转化为sql语句,正则表达式,正则表达式,分组模式文章来源地址https://www.toymoban.com/news/detail-732196.html

到了这里,关于notepad++配合正则表达式分组模式处理文本转化为sql语句的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【正则表达式】正则表达式常见匹配模式

    模式 描述 w 匹配字母数字及下划线 W 匹配非字母数字下划线 s 匹配任意空白字符,等价于 [tnrf]. S 匹配任意非空字符 d 匹配任意数字,等价于 [0-9] D 匹配任意非数字 A 匹配字符串开始 Z 匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串 z 匹配字符串结

    2024年02月09日
    浏览(81)
  • 在 Notepad++ 中,你可以使用正则表达式的替换功能来实现将 trade_status 转换为驼峰形式

    在 Notepad++ 中,你可以使用正则表达式的替换功能来实现将 trade_status 转换为驼峰形式的 tradeStatus。 请按照以下步骤进行操作: 打开 Notepad++,打开你要修改的文件。 点击菜单栏的 “搜索”(Search)- “替换”(Replace),或者使用快捷键 Ctrl + H 打开替换对话框。 在替换对话

    2024年02月16日
    浏览(56)
  • 正则表达式2 常见模式

     继上次的正则表达式速攻1/2-CSDN博客 还有一些常见的匹配模式可以直接使用 电子邮箱  xxx@xxx.域名 的情况 http或者https网址 的情况 IPV4地址 例如 192.168.1.1 匹配日期的情况 xxxx/xx/xx 或者  xxxx-xx-xx 匹配整数或者小数  例如 3.14 RGB颜色   例如 #aabbcc  #ffffff

    2024年01月17日
    浏览(56)
  • Logstash:使用自定义正则表达式模式

    有时 Logstash Grok 没有我们需要的模式。 幸运的是我们有正则表达式库:Oniguruma。在很多时候,如果 Logstash 所提供的正则表达不能满足我们的需求,我们选用定制自己的表达式。 Logstash 是一种服务器端数据处理管道,可同时从多个来源获取数据,对其进行转换,然后将其发送

    2023年04月16日
    浏览(41)
  • 正则表达式:贪婪与非贪婪模式

    正则中的三种模式,贪婪匹配、非贪婪匹配和独占模式。 在这 6 种元字符中,我们可以用 {m,n} 来表示 (*)(+)(?) 这 3 种元字符: 贪婪模式,简单说就是尽可能进行最长匹配。非贪婪模式呢,则会尽可能进行最短匹配。正是这两种模式产生了不同的匹配结果。 贪婪匹配

    2024年02月12日
    浏览(49)
  • 【Python】Python 模式匹配与正则表达式

    你可能熟悉文本查找,即按下Ctrl-F,输入你要查找的词。 “正则表达式”更进一步,它们让你指定要查找的“模式”。 你也许不知道一家公司的准确电话号码,但如果你住在美国或加拿大, 你就知道它有3位数字,然后是一个短横线,然后是4位数字(有时候以3位区号开始)

    2024年02月07日
    浏览(57)
  • 【23JavaScript 正则表达式】深入解析JavaScript正则表达式:基础概念、常用方法和实例详解,轻松掌握强大的文本模式匹配工具

    正则表达式是一种强大的文本模式匹配工具,用于在字符串中搜索和操作特定的文本模式。在JavaScript中,正则表达式提供了一种灵活的方式来处理字符串操作。 在JavaScript中,可以通过使用字面量表示法或RegExp对象来创建正则表达式。 字面量表示法 RegExp对象 JavaScript中的正则

    2024年02月08日
    浏览(64)
  • 使用Logstash过滤插件Grok自定义正则表达式模式并引用

    可以在样例数据: 192.168.10.1 GET /index.html 19876 0.234 中在增加一列,随便写点数字就可以。 现在的样例数据为: 192.168.10.1 GET /index.html 19876 0.234 52767 我们使用自定义的正则表达式模式来匹配数最后一列,前面五列照样使用内置模式来匹配。 将自定义的正则表达式写入到一个文

    2023年04月15日
    浏览(49)
  • 【SQL-正则】利用正则表达式进行过滤操作(常用正则表达式)

    1、由数字、26个英文字母或者下划线组成的字符串 2、非负整数(正整数 + 0 ) 3、正整数 4、非正整数(负整数 + 0) 5、负整数 6、整数 7、非负浮点数(正浮点数 + 0) 8、正浮点数 9、非正浮点数(负浮点数 + 0) 10、负浮点数 11、浮点数 12、由26个英文字母组成的字符串 13、

    2024年02月12日
    浏览(81)
  • Python正则表达式之学习正则表达式三步曲

            正则表达式描述了一种字符串匹配的模式,可以用来检查一个串的有无某子串,或者做子串匹配替换,取出子串等操作。也可以说正则表达式就是字符串的匹配规则,也可以理解为是一种模糊匹配,匹配满足正则条件的字符串。         1、数据验证(eg:表单验

    2024年02月15日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包