2 Groovy Code- Khớp một trường bằng regex và tạo giá trị trống nếu không khớp

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

Tôi có một trường được tạo dựa trên một số dữ liệu được phân tích cú pháp và được định dạng lại. Nếu kết quả cuối cùng không khớp với một mẫu cụ thể, tôi muốn thay thế nó chỉ bằng một giá trị trống. Tôi có một số mã Groovy được viết nhưng tôi tiếp tục gặp lỗi "Không có thuộc tính như vậy" khi tôi chạy nó.

Tôi đã thử chọc qua trực tuyến và di chuyển mã xung quanh nhưng với kinh nghiệm rất hạn chế của mình, tôi không gặp may mắn.

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

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

Kết quả mong đợi của tôi sẽ là giữ lại dữ liệu ['FormattedNum'] nếu nó phù hợp với biểu thức chính quy và nếu không, chỉ cần thay thế bất kỳ nội dung nào trong trường đó thành trống.

    
0
2 Câu trả lời                              2                         

Dữ liệu là gì? Có phải là một bản đồ? Giả sử nó nằm ngoài phạm vi của phương thức hoặc bất cứ nơi nào mã này được đặt ...

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

Bạn có thể làm điều này:

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

060050 tài liệu . Nó có cùng một ngữ nghĩa như gọi ==~ trên một chuỗi nhưng theo cách hấp dẫn

    
0
2019-05-09 12: 37: 05Z
matches
nguồn đặt đây