Groovy中的Switch Case语句的模式匹配

时间:2019-07-31 14:05:45

标签: regex groovy

我正在尝试匹配属性“ fromNamePath”包含“ CASE_N”的情况,属性字符串具有以下结构:

"State/Fields/CASE_N"

我尝试过:

case ~/CASE_N/:

case ~"CASE_N":

case ~/\w+CASE_N/:

这是开关:

switch(mapping.getAttribute("fromNamePath").getValue()) {
                case ~/\w+CASE_N/:
                    logger.info("Found CASE_N");
                default:
                    logger.info(mapping.getAttribute("fromNamePath").getValue());
}

这是记录的数据集:

State/Fields/DAY
State/Fields/FROM
State/Fields/CASE_N

我正在从默认情况下记录所有值,而不是我期望的值:

State/Fields/DAY
State/Fields/FROM
Found CASE_N

1 个答案:

答案 0 :(得分:0)

\w+仅包含字母,但输入字符串中包含“ /”

这很好:

switch("State/Fields/CASE_N"){
    case ~/[\w\/]+CASE_N$/:
        println "case 1"
        break
    default:
        println "default"
        break
}