我需要使用regexp从
##FileName = disp_20120803_064635_1
#Plane1
x1 = 10008 x2= -9991 x3= -9991
y1 = 137 y2 = 10 y3 = 158
z1= 844 z2= 779 z3 = 700
#Plane2
x1 = -16 x2= 193 x3= 320
y1 = -4472 y2 = -556 y3 = 5143
z1= 3215 z2= -1309 z3 = 370
#Plane3
x1 = -8145 x2= 5387 x3= 8070
y1 = -4808 y2 = 7643 y3 = 3051
z1= 4212 z2= 4120 z3 = -4176
##end
我想通过以下代码提取文件名:
buffer = fileread('test.txt') ;
pattern = '##FileName\s=\s+(\w+?\d+)';
tokens = regexp(buffer, pattern, 'tokens');
fileName = [tokens{:}]
但结果只是disp_20120803
,这不是完整的文件名吗?
任何帮助?
答案 0 :(得分:0)
请改用此模式:
pattern = '##FileName\s=\s+(\w+)';
编辑:
我不知道matlab语法,但您可以使用以下正则表达式来捕获变量名称及其值:
pattern = '([xyz][123])\s*=\s*(-?\d+)'
变量名称在组1中,其值在组2中。