Итак, у меня есть следующие строки (каждая строка является строкой файла .txt), и я создал парсер для анализа первой строки следующим образом:
line1: " N1 0.00000000 0.00000000 0.00000000 Type N Rank 4"
parser1 = Word(alphas + nums) + Word(printables + '.' + printables) + Word(printables + '.' + printables) \
+ Word(printables + '.' + printables) + Word(alphas) + Word(alphas) + Word(alphas) + Word(nums)
result = (['N1', '0.00000000', '0.00000000', '0.00000000', 'Type', 'N', 'Rank', '4'], {})
Это здорово. Однако после этой строки следуют только числа с плавающей запятой, которые могут иметь или не иметь знака минус, например:
line2 = " -1.064533
-0.000007 -0.130782 0.044770
0.335373 -0.000007 -0.000006 -0.451296 0.378061
-0.000034 -0.990753 -1.404081 -0.000067 -0.000150
-0.096208 -0.714299
-0.017676 0.000019 0.000034 0.804011 0.911492
0.000019 0.000027 0.441683 0.107567"
И я попытался использовать следующий синтаксический анализатор, чтобы получить эти числа, но, к сожалению, он также захватит строку 1:
parser2 = Word(printables + '.' + printables)
Есть ли способ анализировать поплавки, которые могут лучше включать печатный знак минус?
Большое спасибо (я новичок в pyparsing, так что будьте суровы, как хотите)
pyparsing_common.real
. Полные онлайн-документы можно найти по адресу pyparsing-docs.readthedocs.io/en/latest. /index.html - person PaulMcG   schedule 23.01.2019