\d+ 用来匹配数字
\w+ 用来匹配字母
".*?\" 匹配引号中所有字符
[^,]+ 匹配以逗号结束之前的字符
(看举例吧,这个估计有点难懂)
image.png (29.26 KB, 下载次数: 0)
下载附件
2022-7-21 10:23 上传
[^,]+ 这个意思是匹配 逗号 之前的数据咯 这个对于只有一个逗号的情况可以用这里稍微做个纠正,如果数据内有逗号的话,会出现错误---如图
image.png (28.27 KB, 下载次数: 0)
下载附件
2022-7-21 17:43 上传
感谢一佬的提示[^,]+ 匹配以逗号结束之前的字符,这个说法问题很大
[^,]这个是匹配非逗号内容,+代表匹配一次以上,所以匹配的是任何含有非逗号内容的字符串
如:A,B,C匹配结果为ABC,第一次匹配A,第二次匹配B,第三次匹配C
你这个正则在匹配引号中有逗号的情况就会出问题
-->
如果想匹配逗号结束之前的字符可以用正向预查:
.*(?=,)
-->
ps.注意的是都是英文格式下的字符 其实我用的就这几个,因为平常要接触的数据也没啥了,你们问我的一些花里胡哨的,比如有些时间格式
“2022-01-01” 这些怎么匹配 肯定就是第三个了,如果数据不是在双引号里面呢?
".*?\" 这里的引号可以是 大括号 小括号 都行啦,自己琢磨一下 也就是匹配符号里面的所有字符了。
今天也不讲多了,再讲一点 打个比方
抓到的数据:
image.png (17.6 KB, 下载次数: 0)
下载附件
2022-7-21 10:25 上传
所知的会员数据:
image.png (19.81 KB, 下载次数: 0)
下载附件
2022-7-21 10:26 上传
比一下,发现 "leveltitle": "null", 这个下面多出来了一个 "contractstatus": 2,
这种怎么匹配呢?
image.png (68.46 KB, 下载次数: 0)
下载附件
2022-7-21 10:27 上传
匹配方法: 首先我们先匹配 "leveltitle": "null", (null是字母不会有人不知道吧),然后因为要在他后面加数据,所以后面的 逗号 跟回车格式要注意,不要把格式弄乱了
书写(查找一栏): "leveltitle":"\w+",
我们在替换一栏里面加数据
书写(替换一栏): "leveltitle":"vip",
"contractstatus": 2,
这样就改好了!当然还有一个方法,就是匹配 "memberprivilegelevels",将里面的数据全部替换成会源数据
匹配方法:
书写(查找一栏):"memberprivilegelevels": [^\]]+
(还有其他匹配方法当时我只说我常用的这样更能理解, \ 用来转义的 )
书写(替换一栏): "memberprivilegelevels":\[\{
"levelid": 6,
"leveltitle": "vip",
"contractstatus": 2,
"expiretime": "2022-07-09 23:59:59",
"goodsmembertype": 2
\}
image.png (38.79 KB, 下载次数: 0)
下载附件
2022-7-21 10:28 上传
这里有个细节,这里我直接匹配的 ] 之前的数据,匹配出来的数据是不包括 ] 本身的!
这些都是个人看法经验,如有错误望大佬指出