java - Groovy 代码 - 使用正则表达式匹配字段并在不匹配时生成空白值

标签 java groovy

我有一个基于一些解析和重新格式化的数据创建的字段。如果最终结果与特定模式不匹配,我想用空白值替换它。我编写了一些常规代码,但是当我运行它时,我仍然收到“No such property”的错误。

我尝试过在网上查找并移动代码,但由于我的经验非常有限,我没有任何运气。

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

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

我的预期结果是保留 data['FormattedNum'] 如果它与正则表达式匹配,如果不匹配,只需将该字段中的任何内容替换为空白。

最佳答案

什么是数据?这是 map 吗? 让我们假设它是,并且它超出了方法的范围或该代码所在的任何位置......

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

关于java - Groovy 代码 - 使用正则表达式匹配字段并在不匹配时生成空白值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56044887/

相关文章:

java - Querydsl java按自定义输入列表排序

java - 添加到文件而不是覆盖

rest - 从错误的gson View 访问请求路径变量?

data-binding - groovy swingbuilder 可绑定(bind)列表和表格

java - Java 匿名回调类的 C++11 替代方案

java - 建议在单个 IntelliJ 项目中使用 2 个 Web 模块吗?

Java Socket - 如何捕获 BufferedReader.readline() 的异常

java - Grails 中的使用和 OAuth2 安全 API (Twitter)

Elasticsearch 在 Groovy 脚本中转义连字符字段

java - 如果标签相同则合并文件的时间戳