zheng10072 发表于 2020-6-17 10:04

一个正则匹配求助

本帖最后由 zheng10072 于 2020-6-17 13:51 编辑

语句:update xxx set a=1,b =d, c=y where 1=1 and bb=a;
我想匹配到 a=1,b =d, c=y 中的a b c
请问大佬们这个正则怎么写?


((?<k>[\w\d]+)\s*=\s*(?<v>[\w\d]+)\s*,?(?=(,|where)))+
这个可以

依旧沉沉 发表于 2020-6-17 10:11

(.*?)=\d+
试试行不行

zheng10072 发表于 2020-6-17 10:15

依旧沉沉 发表于 2020-6-17 10:11
(.*?)=\d+
试试行不行

试了,不行额

明明很皮 发表于 2020-6-17 10:22

\s*=\d

Mr.A 发表于 2020-6-17 10:26

=\d

zheng10072 发表于 2020-6-17 10:27

明明很皮 发表于 2020-6-17 10:22
\s*=\d

我这个例子举的不好,字段不一定是数字{:1_890:}
update xxx set a=1,b =d, c=y where 1=1 and bb=a;

明明很皮 发表于 2020-6-17 10:29

zheng10072 发表于 2020-6-17 10:27
我这个例子举的不好,字段不一定是数字
update xxx set a=1,b =d, c=y where 1=1 and bb=a;
...

最好是提供实际需求,针对实际需求来写正则比较好

明明很皮 发表于 2020-6-17 10:31

zheng10072 发表于 2020-6-17 10:27
我这个例子举的不好,字段不一定是数字
update xxx set a=1,b =d, c=y where 1=1 and bb=a;
...

如果一个正则表达式完成不了,那就两个正则了,先取set -- where之间匹配出来,然后再匹配abc也可以

要帅 发表于 2020-6-17 10:37

zheng10072 发表于 2020-6-17 10:38

明明很皮 发表于 2020-6-17 10:29
最好是提供实际需求,针对实际需求来写正则比较好

实际需求是我想把update语句自动转成 select备份语句,现在就差 set 的字段提取不出来了。正则简单处理后用程序再处理可以弄出来,想顺便学习下正则
页: [1] 2
查看完整版本: 一个正则匹配求助