0
谁能帮我解决一个正则表达式的问题?JAVA在抱怨正则表达式模式中的JMeter BeanShell的采样
所以,我检查通过在JMeter的BeanShell中断言的SSH控制台输出。输出看起来是这样的:
field1: value1
field2: value2
...
fieldN: valueN
我使用变量来定义的预期值,比如:
fieldNames = "field1|field2|field3";
fieldValues = "value1,value2,value3";
的BeanShell断言代码是这样的:
import java.util.regex.*;
Failure = false;
FailureMessage = "failed";
String[] fieldNames = {};
String[] fieldValues = {};
String resp = SampleResult.getResponseDataAsString();
fieldNames = "${lFieldNames}".split("|");
fieldValues = "${lExpectedValues}".split(",");
int fieldNumber = -1;
for (int i = 0; i < fieldNames.length; i++)
{
Pattern pattern = Pattern.compile(fieldNames[i] + "\\W\\s(\\d+|\\w+)");
Matcher matcher = pattern.matcher(resp);
}
每次我得到这样的响应:
Assertion error: true
Assertion failure: false
Assertion failure message: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: ``import java.util.regex.*; Failure = false; FailureMessage = "failed"; String[] . . . '' Token Parsing Error: Lexical error at line 16, column 62. Encountered: "W" (87), after : "\"(\\"
我在Perl中检查了这个正则表达式,并在使用egrep的Linux控制台中检查了它 - 它工作正常。所以我真的不明白Java在这里不喜欢什么。
我将是解决此问题的任何帮助,非常感谢。
什么是'的System.out.println输出(FIELDNAMES [I] + “\\ W \\ S(\\ d + | \\ W +)”);' – thefourtheye
它仅仅是相同的:第17行第46列出现词汇错误。遇到:“W”(87),在:“\”\\“ – user3186902