Regex 正则表达式-将所有整数用双引号括起来

Regex 正则表达式-将所有整数用双引号括起来,regex,Regex,我想把这根绳子转过来 00000767,“078”,0785,“0723”,2348734507334 进入这条线 “0000”、“0767”、“078”、“0785”、“0723”、“23487”、“345”、“07334” 这是我能做到的最接近它的地方,当涉及到正则表达式时,我总是对负面查找之类的东西感到有点困惑 [^”\d,]?(\d+)并替换为“$1”- 不幸的是,这会导致整数被双引号括起来,就像这样 “0000”、“0767”、“078”、“0785”、“0723”、“23487”、“

我想把这根绳子转过来

00000767,“078”,0785,“0723”,2348734507334

进入这条线

“0000”、“0767”、“078”、“0785”、“0723”、“23487”、“345”、“07334”

这是我能做到的最接近它的地方,当涉及到正则表达式时,我总是对负面查找之类的东西感到有点困惑

[^”\d,]?(\d+)
并替换为
“$1”
-

不幸的是,这会导致整数被双引号括起来,就像这样

“0000”、“0767”、“078”、“0785”、“0723”、“23487”、“345”、“07334”


伪逻辑是:查找周围没有双引号的任何整数,并添加双引号。逗号之间保留任何空格。

您可以在正则表达式中使用lookarounds来避免匹配引号:

(?<!")(\b\d+\b)(?!")

您只需搜索
“?(\d+)”
并将其替换为
“$1”

如果有“present”,则它们是匹配的,但不包含在组中。

假设在您的情况下,每个数字序列后面都应该跟逗号
,或者放在字符串的末尾。
使用以下正则表达式:

(\d+)\s*?(?=,|$)

这将是一个简单的解决方案,但是我忽略了在示例字符串中添加一些类似于so
“+232987”
的实例,它们在本例中不起作用。然而,由于您的代码很好地回答了我的示例,您仍然得到了我的支持。这非常适合我的所有数据值。谢谢。回答得好,符合我需要的数据,但我只能接受一个答案。;)@奴佛卡因,没关系
"\d+"(*SKIP)(*F)|(\d+)
(\d+)\s*?(?=,|$)