2 सवाल: ग्रूवी कोड- रेगेक्स का उपयोग करके एक फ़ील्ड का मिलान करना और यदि मैच नहीं हो तो रिक्त मान उत्पन्न करना

पर बनाया गया सवाल Wed, May 8, 2019 12:00 AM

मेरे पास एक फ़ील्ड है जो कुछ पार्स और रिफॉर्मैटेड डेटा के आधार पर बनाई गई थी। यदि अंतिम परिणाम एक विशिष्ट पैटर्न से मेल नहीं खाता है, तो मैं इसे केवल एक रिक्त मान के साथ बदलना चाहता हूं। मेरे पास कुछ ग्रूवी कोड लिखे हुए हैं, लेकिन जब मैं इसे चलाता हूं तो मुझे "ऐसी कोई संपत्ति नहीं" की त्रुटियां मिलती रहती हैं

मैंने ऑनलाइन ऑनलाइन और कोड को इधर-उधर घुमाने की कोशिश की है, लेकिन अपने बहुत ही सीमित अनुभव के साथ मुझे कोई सौभाग्य नहीं मिल रहा है।

def formattedData=data['FormattedNum']
def regExpStr=[A-Z]{5}[':'][0-9]{4}

if (formattedData.matches(regExpStr)){
    formattedData
} else {
    formattedData =''
}  ; 

मेरे अपेक्षित परिणाम डेटा को बनाए रखना होगा ['स्वरूपित'] यदि यह रेगेक्स से मेल खाता है और यदि ऐसा नहीं होता है, तो उस फ़ील्ड में जो कुछ भी है उसे रिक्त स्थान के रूप में प्रतिस्थापित करें।

    
0
2 उत्तर                              2                         

डेटा क्या है? क्या यह एक नक्शा है? मान लें कि यह है और यह विधि में या जहां भी यह कोड स्थित है, दायरे से बाहर है ...

def data = [FormattedNum: 'ABCDE:0123']
def formattedData= data['FormattedNum']
def regExpStr = /[A-Z]{5}[':'][0-9]{4}/
if (formattedData.matches(regExpStr)){     
    formattedData 
} 
else { 
    formattedData = '' 
}
    
0
2019-05-09 12: 25: 34Z

आप ऐसा कर सकते हैं:

def formattedData = data['FormattedNum']
if (!(formattedData ==~ '[A-Z]{5}:[0-9]{4}')) {
   formattedData = ''
}

==~ नियमित अभिव्यक्ति के साथ विषय से मेल खाता है, जैसा कि समझाया गया है आधिकारिक ग्रूवी में डॉक । यह एक ही शब्दार्थ है कि एक स्ट्रिंग पर matches पर कॉल किया जा सकता है लेकिन ग्रूवी तरीके से

    
0
2019-05-09 12: 37: 05Z
स्रोत रखा गया यहाँ