如何用正则表达式拆分字符串?

时间:2019-02-28 10:35:28

标签: regex nginx

在nginx中,我想处理argumet的样子:

1530569.52624839870259166,524135.21126760687911883,1531064.27656850102357566,524629.96158770937472582

所以四个数字之间用逗号分隔。我想解析它并获取分隔的数字。
我可以使用第一个号码:

^([^,]+)

我如何获得另一个号码?

1 个答案:

答案 0 :(得分:3)

假设您始终有四个固定的CSV数字,则可以尝试以下模式:

^([^,]+),([^,]+),([^,]+),([^,]+)$

这四个数字将作为四个单独的捕获组提供。

大多数正则表达式引擎不会存储重复的捕获组,因此尽管我们可能会尝试使用以下模式,但它可能也不起作用:

^([^,]+)(,[^,]+){3}$

编辑:

如果您追求的是每个数字都使用单独的正则表达式模式,那么这可能会有所帮助:

first:  ^([^,]+)
second: ^[^,]+,([^,]+)
third:  ^[^,]+,[^,]+,([^,]+)
fourth: ^[^,]+(?:,[^,]+){2},([^,]+)