Jmeter正则表达式可变行数


问题内容

我的问题是,如何编写Jmeter正则表达式,以便与解析的文本中的多少行无关紧要?例如,正则表达式:

<FMSFlightPlan>\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)</FMSFlightPlan>

将匹配下面显示的7行字符串,并返回两个标签之间的所有内容

<FMSFlightPlan>
8725
AN NTEST/GL 
- FPN/FN/RP:DA:GCRR:AA:LEMD:F:KORAL,N29439W012347.UG5. 
SONSO,N30007W012061.UN871.VJF,N36144W005585.UN10. 
HIJ,N38305W005060.Z230.SOTUK,N39116W004448 
</FMSFlightPlan>

但是,相同的正则表达式将为以下6行字符串返回NA:

<FMSFlightPlan>
C90D
AN N9696T/GL 
- FPN/FN/RP:DA:KDEN:AA:KSFO:F:DBL,N39264W106537.J80. 
ILC,N38150W114237..RUMPS,N38072W117163..OAL,N38002W117462 
</FMSFlightPlan>

我知道模板也必须设置为正确的行数,我不认为这是问题的原因。


问题答案:

原来,我需要建立dotall模式,该模式基本上告诉正则表达式提取器将新行解析为空白。dotall模式是通过在正则表达式的开头添加标签(?s)来建立的,如下所示:

(?s)<FMSFlightPlan>(.*?)</FMSFlightPlan>

但是…我仍然无法打印匹配的文本。由于某种原因,我正在使用的Beanshell断言无法将正则表达式Reference Name识别为变量,并给我错误消息:

断言错误:true断言失败:false断言失败消息:org.apache.jorphan.util.JMeterException:调用bsh方法出错:eval源文件:内联评估:``import
java.io. *; //将数据结果写到文件outfile =“ / Users /
Dani。。。”令牌解析错误:第12行第380列出现词法错误。遇到:“ \ n”(10),后跟:“ \” 3811 \ tYes \ tAAR \
tSTN \ t835 \ t \ t $ B738 \ tfp,nradps,art,CCAAN,EXCD,wp00,p00 \ t37919 \
ta0 \ ti \ t10 \ t0 \ t3 \ t0 \ t \ t14 \ t 25 / M \ t0000ADF \ t140785 \
t133806 \ t006979 \ t01:15:00 \ t0484 \ t360 \ t0379 \ t360 \ t0112 \ t
000932 \ tP00 \ t007115 \ t2013-02-13T21:23:00Z \ t2013-02-14T08: 35:00 +
00:00 \ t000837 \ t00:10:00 \ t000000 \ t00:00:00 \ t000837 \ t00:10:00 \
t000000 \ t000000 \ t000000 \ t00:00:00 \ t000000 \ t00:00: 00 \ t“


我当前正在尝试使用用户定义的变量来确保Beanshell断言可以识别正则表达式。

感谢大家的回应!