2 Soru: Groovy Kodu- Regex kullanarak bir alanı eşleştirme ve eşleşme değilse boş değer oluşturma

tarafından oluşturulan soru Wed, May 8, 2019 12:00 AM

Bazı ayrıştırılmış ve yeniden biçimlendirilmiş verilere dayanarak oluşturulmuş bir alanım var. Nihai sonuç belirli bir desenle eşleşmezse, yalnızca boş bir değerle değiştirmek istiyorum. Bazı harika kodlarım var ancak çalıştırdığımda "Böyle bir özellik yok" hatalarını almaya devam ediyorum.

Çevrimi bozmaya ve kodu hareket ettirmeye çalıştım, ancak çok sınırlı bir deneyim yaşama şansım olmadı.

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

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

Beklediğim sonuçlar, eğer regex ile eşleşirse ['FormattedNum'] verisini tutmak olacaktır ve eğer değilse, o alanda olanı boş bırakmanız yeterli olacaktır.

    
0
2 Yanıtlar                              2                         

Veri nedir? Harita mı? Farz edelim ki, yöntemde veya bu kodun bulunduğu yerde kapsam dışındadır ...

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

Bunu yapabilirsiniz:

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

==~, konuyu, normal Groovy'de açıklanan açıklayıcı ifadeyle eşleştiriyor doc . Bir ipte 06003509911111100101035062 numaralı telefonu aramakla aynı anlamsal özelliklere sahiptir ancak groovy bir şekilde

    
0
2019-05-09 12: 37: 05Z
matches
kaynak yerleştirildi İşte