按索引提取值

时间:2018-05-17 06:17:14

标签: regex

我有这个字符串 82,03,92,23,12,32,43 ,我想提供一个起点和终点位置来获得一个特定的值(即你怎么得到12 )。

我尝试过以下正则表达式:

\b(\w+)  this returns 82, it's kind of close of what I'm looking for  
([0-9]*),([0-9]*) this returns 82,03 which is not what I'm looking for 

我没有指定任何编程语言,因为我希望正则表达式在某种意义上是指令,因此系统可以计算并返回所提供的任何情况的结果。 (从某种意义上说,我们可以考虑抽象,所以如果我使用slipt函数,那么我就像特定情况下的硬编码值一样)

2 个答案:

答案 0 :(得分:0)

据我所知,你不能单独使用正则表达式来实现这一点,除非有人会动态构建一个正则表达式。因此,如果您想访问第三个值,您需要:

/(?:\d+,\d+,)(\d+)/,

但是没有办法将参数设置为正则表达式,至少不是我所知道的语言......

您所能做的就是将字符串拆分为数组并在那里应用索引:

"32,234,354,223,".split(",")[<idx>]

或while循环+ exec()

let match = null, finder = /\d+/g, test = '90,32,23', idx = 0;

while ((match = finder.exec(test))!== null) {
  //here your match…
  idx++;
}

答案 1 :(得分:0)

您可以将字符串拆分为数组并在数组上应用索引。你没有提到你的编程语言,所以在C#中是一个例子:

{{1}}