如何在SOAP UI中使用groovy从字符串中提取数字id

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在SOAP UI中使用groovy从字符串中提取数字id相关的知识,希望对你有一定的参考价值。

其中一个服务是返回一个字段,其值如下所示,我想在SOAP UI中使用Groovy从下面的字符串中提取数字'2734427'

[[https%3a%2f%2fthis.is.a.sample.link%2fproduct-data-v1%2f/jobs/2734427]]

我使用了下面的代码行 - 这可行,但它看起来有点hacky。想知道是否有人可以提出更好的选择。

//Get the value of the Job Id Link 
def gtm2joblink = "[[https%3a%2f%2fthis.is.a.sample.link%2fproduct-data-v1%2f/jobs/2734427]]"
// split jobid full link for extracting the actual id  
def sub1 = { it.split("jobs/")[1] }
def jobidwithbrackets = sub1(gtm2joblink)
// split jobid full link for extracting the actual id  
def sub2 = { it.split("]]")[0] }
def jobid = sub2(jobidwithbracket)


log.info gtm2joblink
答案

听起来像正常表达的工作。如果作业ID始终遵循/jobs,并且始终为数字,并且最后总是有双括号]],则以下内容将提取ID:

import java.util.regex.Matcher 

//Get the value of the Job Id Link 
def gtm2joblink = "[[https%3a%2f%2fthis.is.a.sample.link%2fproduct-data-v1%2f/jobs/2734427]]"

Matcher regexMatcher = gtm2joblink =~ /(?ix).*\/jobs\/([0-9]*)]]/
if (regexMatcher.find()) {
    String jobId = regexMatcher.group(1);
    log.info(jobId)
} else  {
    log.info('No job ID found')
}

以上是关于如何在SOAP UI中使用groovy从字符串中提取数字id的主要内容,如果未能解决你的问题,请参考以下文章

从文件中读取字符串并使用 Groovy 将它们放入数组中

如何在php中解析soap xml响应并从字符串中获取信息

如何使用 SOAP UI 创建有效的 WS-A 请求

SOAP UI中的特殊字符关闭标记问题

如何从python的list中提想要的值

Theme.spacing 不是函数