我想讀取包含變量名稱和相應值的大型文本文件(請參閱下面的小例子)。名稱都是大寫字母,值通常用句點和空白字符分隔,但如果變量名稱太長,則它僅被空格分隔。從文本文件中使用REGEX在Python中提取變量名稱和值
WATER DEPTH .......... 20.00 M TENSION AT TOUCHDOWN . 382.47 KN
TOUCHDOWN X-COORD. ... -206.75 M BOTTOM SLOPE ANGLE ... 0.000 DEG
PROJECTED SPAN LENGTH 166.74 M PIPE LENGTH GAIN ..... 1.72 M
我可以使用下面的表達式查找值:
line = ' PROJECTED SPAN LENGTH 166.74 M PIPE LENGTH GAIN ..... 1.72 M \n'
re.findall(r"[-+]?\d*\.\d+|\d+", line):
['166.74', '1.72']
但是,當我嘗試提取變量名稱,使用以下的表達式我已經開頭和結尾的空格,我想忽略。
re.findall('(?<=\s.)[A-Z\s]+', line)
[' PROJECTED SPAN LENGTH ', ' PIPE LENGTH GAIN ', ' ', ' \n']
我相信它應該有^ \ s這樣的東西,但我不能得到它的工作。 成功時,我想將數據存儲在數據框中,變量名稱爲索引,值爲列。
使用'r'[A-Z] +(?:\ s + [A-Z] +)*'' –