Мне нужно разобрать некоторые таблицы из текстового файла ASCII. Вот частичный образец:Regex: Повторяющиеся группы захвата
QSMDRYCELL 11.00 11.10 11.00 11.00 -.90 11 11000 1.212
RECKITTBEN 192.50 209.00 192.50 201.80 5.21 34 2850 5.707
RUPALIINS 150.00 159.00 150.00 156.25 6.29 4 80 .125
SALAMCRST 164.00 164.75 163.00 163.25 -.45 80 8250 13.505
SINGERBD 779.75 779.75 770.00 773.00 -.89 8 95 .735
SONARBAINS 68.00 69.00 67.50 68.00 .74 11 3050 2.077
Таблица состоит из 1 столбца текста и 8 столбцов чисел с плавающей запятой. Я хотел бы захватить каждый столбец с помощью регулярного выражения.
Я довольно новичок в регулярных выражениях. Вот неисправный шаблон регулярного выражения, который я придумал:
(\S+)\s+(\s+[\d\.\-]+){8}
Но шаблон фиксирует только первый и последний столбцы. RegexBuddy также выдает следующее предупреждение:
Вы повторили группу захвата . Группа будет захватывать только последнюю итерацию. Поместите захват группы вокруг повторяющейся группы до . Захватите все итерации.
Я проконсультировался с их файлом справки, но у меня нет подсказки относительно того, как это решить.
Как я могу записать каждый столбец отдельно?
На каком языке вы используете? В .NET это легко. –
@Tim: Да, я намереваюсь написать программу на C#. Но на данный момент я прототипирую его в Python. – invarbrass
См. Также: http: // stackoverflow.com/questions/3029127/is-there-a-regex-flavor-that-allow-me-to-count-the-number-of-repetitions-matching/ – polygenelubricants