Я анализирую текст с заголовком, а затем данные, которые относятся к этому заголовку. Мне нужно разбить каждое поле данных на группы, чтобы заголовок также относился к этим группам. Вот пример:
(Обновление: текст ниже был обновлен, чтобы лучше отражать его текущую разметку и указывать аннотацию.)
Heading 1
Heading 2 Heading 3
(Group 1)
data1 data2
data3 data4
data5
(Group 2)
data1 data2
data3 data4
data5
(Group 3)
data1 data2
data3 data4
data5
** The headers become different values here *** (this is not part of the data)
NewHeading 1
NewHeading 2 NewHeading 3
(Group 4)
data1 data2
data3 data4
data5
(Group 5)
data1 data2
data3 data4
data5
**etc
Вывод должен быть таким:
(Group 1) Heading1 Heading2 Heading3 data1 data2 data3 data4 data5
(Group 2) Heading1 Heading2 Heading3 data1 data2 data3 data4 data5
(Group 3) Heading1 Heading2 Heading3 data1 data2 data3 data4 data5
(Group 4) NewHeading1 NewHeading2 NewHeading3 data1 data2 data3 data4 data5
(Group 5) NewHeading1 NewHeading2 NewHeading3 data1 data2 data3 data4 data5
Поля, отмеченные (Группа 1-5), являются просто метками для строки, они не должны быть частью возвращенного набора. Заголовки, изменяющиеся на «NewHeading», просто указывают на то, что значения заголовков изменились и должны применяться к последующим данным.
За последние пару часов я немного почитал, как это называется, но мне не повезло. Есть идеи? Это для .Net regex engine.
Обновление: добавлены аннотации, показывающие, что заголовки меняются над файлом.
Я также провел некоторые исследования и считаю, что я могу достичь чего-то почти так же легко, имея две модели. Один для заголовков, а другой для данных. Затем я могу сравнить заголовок и индекс соответствия данных (то есть: где он находится в файле) друг с другом и объединить их таким образом.