Using regex capture groups in velocity

Anders Lantz September 12, 2017

I´m setting up templates in JETI using velocity templates and HTLM, i´d like to use regex capture groups to retieve data from custom files. But I´m not quite sure how to invoke regex capture group in Velocity/Java, i´ve seen plenty of examples on how to replace text and verify matches but I have yet to find or figure this out. 

 

I can use this to retrive the customfiled data and present it to the user:

#set ($string =$!jetiFieldRenderer.renderCustomField($issue, "customfield_10238").toLowerCase())
$string

 

Here is what I think i need to do in JAVA but I´m not sure how to make velocity do it and present it.
Pattern pattern = Pattern.compile("\[(.*)\(.*\)\]"); 
Matcher matcher = pattern.matcher($string); 
matcher.group(1)

1 answer

1 vote
Bill Bailey
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
February 2, 2018

@Anders Lantz, did you ever figure this out? This is also what I need to do, but it is not working, Maybe the correct classes are not exposed in the Velocity context for user macros?

Anders Lantz February 5, 2018

Nah I had to resort to using "replaceAll" several times on the same custom field. 

For reference, here is one regex i used:

$!jetiFieldRenderer.renderCustomField($issue, "customfield_10515").replaceAll('(\[|\]| \(\w*-\d*\))','') 

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events