Regex 用于捕获第n次出现的字符的正则表达式

Regex 用于捕获第n次出现的字符的正则表达式,regex,regex-group,Regex,Regex Group,我想捕捉字符串中的第三个逗号,如: 98,52,"110,18479456000019" 我想到了一些类似于角色的东西,除了: [^"0123456789] 但是,结果是捕获了所有逗号 在那之后,我尝试了一些关于n次捕获的正则表达式——似乎是一个解决方案——但都不起作用 我如何解决这个问题 有几种方法可以捕获第三个,。其中一种方法是: ([\d,])\x22\d+(,)\d+\x22 简单地说,您想要的是第二组(,),您可以使用$2来调用它 为了安全起见,我在这个正则表达式中添加了额外的边

我想捕捉字符串中的第三个逗号,如:

98,52,"110,18479456000019"
我想到了一些类似于角色的东西,除了:

[^"0123456789]
但是,结果是捕获了所有逗号

在那之后,我尝试了一些关于n次捕获的正则表达式——似乎是一个解决方案——但都不起作用


我如何解决这个问题

有几种方法可以捕获第三个,。其中一种方法是:

([\d,])\x22\d+(,)\d+\x22
简单地说,您想要的是第二组(,),您可以使用$2来调用它

为了安全起见,我在这个正则表达式中添加了额外的边界,您可以将其删除:

是“just”,如果您愿意,您可以替换它:

([\d,])"\d+(,)\d+"
必要时,还可以使用(\)并转义字符


如果您的输入稍微复杂一些,可能是这样的:

您可以在第三之前创建中间边界,并在中间边界中添加所有可能的字符(<代码> [\d\w ] ] +<代码>,如:

并用2美元捕获第三个。这一次你也可以从右侧放松你的表情,它仍然有效

您还可以在正则表达式中添加start^:

^(\d+,){2}[\d\w\"]+(,)
作为附加的左边界,这意味着您的输入必须以该表达式开头

^(\d+,){2}[\d\w\"]+(,)