Использование регулярных выражений нескольких групп захвата для разделения строки
У меня есть файл, который выглядит так...
"1234567123456","V","0","0","BLAH","BLAH","BLAH","BLAH"
"1234567123456","D","TEST1 "
"1234567123456","D","TEST 2~TEST3"
"1234567123456","R","TEST4~TEST5"
"1234567123457","V","0","0","BLAH","BLAH","BLAH","BLAH"
"1234567123457","D","TEST 6"
"1234567123457","D","TEST7"
"1234567123457","R","TEST 8~TEST9~TEST,10"
Все, что я пытаюсь сделать, это разобрать линии D и R. В этом случае ~ используется как разделитель. Таким образом, конечные результаты будут...
"1234567123456","V","0","0","BLAH","BLAH","BLAH","BLAH"
"1234567123456","D","TEST1 "
"1234567123456","D","TEST3"
"1234567123456","D","TEST3"
"1234567123456","R","TEST4"
"1234567123456","R","TEST5"
"1234567123457","V","0","0","BLAH","BLAH","BLAH","BLAH"
"1234567123457","D","TEST 6"
"1234567123457","D","TEST7"
"1234567123457","R","TEST 8"
"1234567123457","R","TEST9"
"1234567123457","R","TEST,10"
Я использую регулярные выражения в таких приложениях, как Textpad и Notepad++. Я не понял, как использовать регулярные выражения, такие как /.+/g, потому что приложения не любят косые черты. Поэтому я не думаю, что смогу использовать такие вещи, как глобальный модификатор. В настоящее время у меня есть следующее регулярное выражение...
//In a program like Textpad/Notepad++
<FIND> "(.{13})","D","([^~]*)~(.*)
<REPLACE> "\1","D","\2"\n"\1","D","\3
Теперь, если я запускаю поиск и замену вышеупомянутыми параметрами несколько раз, это будет работать нормально (только для D-строк). Проблема в том, что нужно сделать неизвестное количество строк. Например...
"1234567123456","D","TEST1~TEST2~TEST3~TEST4~TEST5"
"1234567123457","D","TEST1~TEST2~TEST3"
"1234567123458","D","TEST1~TEST2"
"1234567123459","D","TEST1~TEST2~TEST3~TEST4"
Я надеялся, что смогу использовать группу захвата MULTI, чтобы сделать эту работу. Я нашел эту страницу, говорящую об общей ошибке между повторением группы захвата и захватом группы повторения. Мне нужно захватить повторную группу. По какой-то причине я просто не мог заставить мою работу работать правильно. У кого-нибудь еще есть идея?
Примечание: Если бы я мог избавиться от начальных и конечных пробелов EX: "1234567123456","D","TEST1 " заканчивая как "1234567123456", "D", "TEST1", это было бы даже лучше, но не обязательно.
РЕСУРСЫ: