use strict;
my $str = 'MWTTanDeltaMean=27.0355 MWTTanDeltaSTD=2.3498
MWTTanDeltaChangeOverTime=1.8083
MWTTanDeltaDuration= 15
MWTTanDeltaMeanPeakVoltage=34475.3700
MWTTanFrequency=0.1000
MWTTanDeltaValues=
27.5766;27.5707;27.3737;26.6112;26.0126;26.2416;26.1120; 26.1621;25.7420;25.9710;25.6238;25.7683;25.8689;26.1269; 26.1321;26.2643;25.7848;25.1501;25.3091;25.0000;25.3175; 25.5920;24.8733;24.6167;24.6299;24.7430;25.4183;25.9896; 25.4958;25.4259;26.4650;25.7657;30.0259;30.5261;30.2207; 30.7683;30.5524;31.4316;30.5092;31.2188;31.3513;31.4804; 31.1870;31.5287;31.2671;30.7482;29.5514;28.6546;29.6851; 29.2009;29.2151;29.1309;29.1466;33.0232;31.8877;30.4890; 26.8053;27.0559;26.8480;25.6997;25.8613;26.7863;26.0611; 26.7878;27.2462;25.6071;25.9075;25.9302;25.8017;26.8502; 26.7850;26.3517;25.5865;26.1033;25.8408;26.2310;25.0309; 23.9557;24.0468;24.0217;23.7751;24.5628;24.3670;24.3429; 25.5378;27.6765;24.4876;24.7278;23.9403;
MWTTanDeltaTimeValues=
25.8168;27.8008;27.0355;
MWTTanDeltaSTDTimeValues=
0.7685;2.4520;2.3498;
MWTTanDeltaChangeTimeValues=
[Result]
SmileyPhase1=3
Temperature=
MeasurementResult=0 TEST SEQUENCE COMPLETED SUCCESSFULLY
2017-12-27 14.08';
my $regex = qr/MWTTanDeltaValues=\s*([\s\S]+)(?=MWTTanDeltaTimeValues=)/p;
if ( $str =~ /$regex/g ) {
print "Whole match is ${^MATCH} and its start/end positions can be obtained via \$-[0] and \$+[0]\n";
# print "Capture Group 1 is $1 and its start/end positions can be obtained via \$-[1] and \$+[1]\n";
# print "Capture Group 2 is $2 ... and so on\n";
}
# ${^POSTMATCH} and ${^PREMATCH} are also available with the use of '/p'
# Named capture groups can be called via $+{name}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html