我想读取包含变量名称和相应值的大型文本文件(请参阅下面的小例子)。名称都是大写字母,值通常用句点和空白字符分隔,但如果变量名称太长,则它仅被空格分隔。从文本文件中使用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] +)*'' –