Regex 无法使用Groovy-Jmeter JSR223从文本文件中捕获所需字符串

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

我需要解析文本文件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.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')
}