我正在尝试从Jmeter Regular Expression提取器中的字符串中提取最后一个值。
我的字符串
Server.init("asdfasd4ffffasdf", "http://x.x.x.x:8888/", "asdf-U-Yasdf77asdf99");
我想只获得asdf-U-Yasdf77asdf99
。
我尝试过类似下面的内容,但不正确:
Server.init\(".+", ".+", "([A-Za-z0-9\-]+)"\);
答案 0 :(得分:1)
正则表达式虽然不是很漂亮,但在正确使用时应该可以正常工作。但是你需要看看第1组的结果,而不是整场比赛。
所以你需要做一些像
这样的事情Pattern regex = Pattern.compile("Server\\.init\\(\"[^\"]+\", \"[^\"]+\", \"([A-Za-z0-9\\-]+)\"\\);");
Matcher regexMatcher = regex.matcher(subjectString);
if (regexMatcher.find()) {
ResultString = regexMatcher.group(1);
}
答案 1 :(得分:1)
使用JMeter
您需要引用您的匹配组。
Reference Name: MYWORD
Regular Expression: Server\.init\("[^"]+", "[^"]+", "([^"]+)"\);
Template: $1$
您可以使用${MYWORD}
如果您使用上面的Match No:
指定,请使用相应的值来访问匹配项。
答案 2 :(得分:1)
正则表达式:
Server.init\("(.+?)",\s"(.+?)",\s"(.+?)"
匹配以下字符串
Server.init("asdfasd4ffffasdf", "http://x.x.x.x:8888/", "asdf-U-Yasdf77asdf99"
我们可以在jmeter
中提取以下值:
$1
values = asdfasd4ffffasdf
$2
values = http://x.x.x.x:8888/
$3
values = asdf-U-Yasdf77asdf99