Regex 无法使用Groovy-Jmeter JSR223从文本文件中捕获所需字符串
我需要解析文本文件testresults.txt并捕获序列号,然后使用groovy Jmeter JSR223后处理器将捕获的序列号写入名为serialno.txt的单独文本文件中。 下面的代码不工作。它本身没有进入while循环。请帮忙Regex 无法使用Groovy-Jmeter JSR223从文本文件中捕获所需字符串,regex,groovy,jmeter,jsr223,Regex,Groovy,Jmeter,Jsr223,我需要解析文本文件testresults.txt并捕获序列号,然后使用groovy Jmeter JSR223后处理器将捕获的序列号写入名为serialno.txt的单独文本文件中。 下面的代码不工作。它本身没有进入while循环。请帮忙 import java.util.regex.Pattern import java.util.regex.Matcher String filecontent = new File("C:/device/resources/testresults
import java.util.regex.Pattern
import java.util.regex.Matcher
String filecontent = new File("C:/device/resources/testresults.txt").text
def regex = "SerialNumber\" value=\"(.+)\""
java.util.regex.Pattern p = java.util.regex.Pattern.compile(regex)
java.util.regex.Matcher m = p.matcher(filecontent)
File SN = new File("C:/device/resources/serialno.txt")
while(m.find()) {
SN.write m.group(1)
}
如果您的代码没有进入循环,这意味着没有匹配项,因此您需要修改正则表达式,您可以使用网站进行实验 给定
testresults.txt
文件的以下内容:
SerialNumber" value="foo"
SerialNumber" value="bar"
SerialNumber" value="baz"
您的代码运行良好
目前,我只能建议使用以使代码更“groovy”
def source=new文件('C:/device/resources/testresults.txt')。text
def匹配=(源=~'SerialNumber“值=(.+?)”)
matches.each{match->
没有实际输入的新文件('C:/device/resources/serialno.txt'),我们无法帮助您调试该问题。
def source = new File('C:/device/resources/testresults.txt').text
def matches = (source =~ 'SerialNumber" value="(.+?)"')
matches.each { match ->
new File('C:/device/resources/serialno.txt') << match[1] << System.getProperty('line.separator')
}