2012-10-17 16 views
18

में कैद समूह निम्नलिखित ग्रूवी कोड स्विच बयान को देखते हुए:ग्रूवी Regex: स्विच वक्तव्य

def vehicleSelection = "Car Selected: Toyota" 

switch (vehicleSelection) { 
    case ~/Car Selected: (.*)/: 

     println "The car model selected is " + ??[0][1] 
} 

यह एक नया (def) चर को परिभाषित करने के बिना शब्द "टोयोटा" निकालने के लिए संभव है?

import java.util.regex.Matcher 

def vehicleSelection = 'Car Selected: Toyota' 

switch(vehicleSelection) { 
    case ~/Car Selected: (.*)/: 
    println "The car model selected is ${Matcher.lastMatcher[0][1]}" 
} 

उत्तर

27

यह lastMatcher विधि ग्रूवी द्वारा Matcher को जोड़ा गया का उपयोग कर संभव है

आप "Matcher.lastMatcher के एक झुंड से बचने चाहते हैं "आपके कोड में आप उपनाम के रूप में कार्य करने के लिए एक सहायक कार्य बना सकते हैं।

import java.util.regex.Matcher 

static Matcher getm() 
{ 
    Matcher.lastMatcher 
} 

def vehicleSelection = 'Car Selected: Toyota' 

switch(vehicleSelection) { 
    case ~/Car Selected: (.*)/: 
     println "The car model selected is ${m[0][1]}" 
    break; 
} 
+0

मुझे अभी भी 'm' घोषित करना होगा। मैं सोच रहा था कि क्या पर्ल की '_ _' जैसी कुछ थी। यदि यह ग्रोवी की सीमा है तो शायद 'डीफ़' का उपयोग कर ठीक है। – Reimeus

+0

@ रीमेमस एक और तरीका मिला! उत्तर बदल रहा है ... –

+0

यही वह है जिसे मैं ढूंढ रहा था। धन्यवाद! – Reimeus

3
tim_yates पर

भवन का जवाब है कि मेरे लिए वास्तव में मददगार था:

संबंधित मुद्दे