如果在正则表达式中双引号内有逗号,如何捕获组?

时间:2017-02-01 14:37:33

标签: regex apache-nifi capture-group

我是这个正则表达式匹配的新手,并且有如下所示的示例输入。

1,2,Name,"12,3"
1,2,Name,12

现在我需要单个正则表达式来分割两个像捕获组一样的行..,

input.1->1
input.2->2
input.3->Name
input.4->"12,3"

input.1->1
input.2->2
input.3->Name
input.4->12

我找到了正则表达式并在ExtractTextProcessor中使用它,就像这样。,

(.+),(.+),(.+),(.+)

匹配如下..,

input.1->1,2
input.2->Name
input.3->"12
input.4->3"

如果我做错了,请阻止我

请任何人指导我解决此问题。

由于

1 个答案:

答案 0 :(得分:4)

这应该有效。

(\d+),(\d+),(\w+),(\d+$|(?:\"*\d*,*)*)

输入:

1,2,Name,"12,3"
1,2,Name,12

输出:

#1
$1 = 1
$2 = 2
$3 = Name
$4 = "12,3"

#2
$1 = 1
$2 = 2
$3 = Name
$4 = 12