notepad++使用正则替换将html串转成json串

方滴云WEB2024-03-11 15:23

日常开发中,经常需要在网上借鉴一些资料,而借的这些信息大多是 HTML代码,比如select组件的或者直接就是DIV或UL/LI之类的,如果数据量少,手动处理下就可以了,如果数据量比较大,那手动就不靠谱了,必竟人做重复事是容易犯错的。特别是看到下面这一堆的时候 ~_~

notepad++作为一个元老级的代码编辑工具,我一直忘不了它,时不时的要他助力下,正好这里有一个正则替换。于是,就来研究下了。先聊一点点基础知识。

\t 制表符.
\n 行.
. 匹配任意字符.
| 匹配表达式左边和右边的字符. 例如, "ab|bc" 匹配 "ab" 或者 "bc".
[] 匹配列表之中的任何单个字符. 例如, "[ab]" 匹配 "a" 或者 "b". "[0-9]" 匹配任意数字.
[^] 匹配列表之外的任何单个字符. 例如, "[^ab]" 匹配 "a" 和 "b" 以外的字符. "[^0-9]" 匹配任意非数字字符.
* 其左边的字符被匹配任意次(0次,或者多次). 例如 "be*" 匹配 "b", "be" 或者 "bee".
+ 其左边的字符被匹配至少一次(1次,或者多次). 例如 "be+" 匹配 "be" 或者 "bee" 但是不匹配 "b".
? 其左边的字符被匹配0次或者1次. 例如 "be?" 匹配 "b" 或者 "be" 但是不匹配 "bee".
^ 其右边的表达式被匹配在一行的开始. 例如 "^A" 仅仅匹配以 "A" 开头的行.
$ 其左边的表达式被匹配在一行的结尾. 例如 "e$" 仅仅匹配以 "e" 结尾的行.
() 影响表达式匹配的顺序,并且用作表达式的分组标记.
\ 转义字符. 如果你要使用 "" 本身, 则应该使用 "\".

简单的我们就不说下,下面直接来个进阶的。

原始串为:

str[1]abc[991];
str[2]abc[992];

目标串为:

abc[1];
abc[2];

我们要如何替换呢?

处理:
查找串:str\[([0-9]+)\]abc\[[0-9]+\]
替换串:abc[\1]

这里的1、2对应正则的位置,比如上面这个查找串中有两个正则表达式。

废话不多下说下,我们来上正菜了。目标串如下:

我们希望目标串如下

["00:注册登记检验","01:在用车检验(定检)","02:临时检验","03:特殊检验","04:在用车检验(非定检)"]

第一步,选处理掉前面的selec标签,替换规则如下:

到此,基本就大功告成了。

补充:第三步,可能\d不够,可以写百\d|\w,因为有一些options的value不是纯属数字的。