Как извлечь числовой идентификатор из строки, используя groovy в SOAP UI - PullRequest
0 голосов
/ 20 мая 2018

Один из сервисов возвращает поле со значением, подобным приведенному ниже, я хочу извлечь число '2734427' из строки ниже, используя Groovy в SOAP UI

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

Я использовал приведенные ниже строки кодов - это работает, но выглядит немного странно. Хотелось бы знать, может ли кто-нибудь предложить лучший вариант.

//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

1 Ответ

0 голосов
/ 20 мая 2018

Звучит как работа для регулярного выражения.Если идентификатор задания всегда следует /jobs и всегда числовой, а в конце всегда есть двойные скобки ]], то следующий код извлечет идентификатор:

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')
}
...