2017-02-01 13 views
1

Я новичок в этом совпадения регулярных выражений и есть пример ввода, как показано ниже.,Как захватить группу, если она имеет запятую внутри двойных кавычек в регулярном выражении?

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" 

И остановить меня, если что-то я делаю неправильно

Пожалуйста, кто поведет меня, чтобы решить эту проблему.,

Благодаря

ответ

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 
+0

это возможно без отдавания \ ш, \ д использовать только –