請為以下 Firstjson 串列建議一個通配符
Firstjson = { p10_7_8 , p10_7_2 , p10_7_3 p10_7_4}
我試過p10.7。* Secondjson 串列下方的通配符,它??有效。但是當我為上面的 Firstjson 串列嘗試p10_7_ * 時,它不起作用
Secondjson = { p10.7.8 , p10.7.2 , p10.7.3 , p10.7.4 }
uj5u.com熱心網友回復:
您正在嘗試使用通配符語法,但 Groovy 需要正則運算式語法來進行模式匹配。
您的嘗試出了什么問題:
嘗試#1:p10.7.*
正則運算式.匹配任何單個字符并.*匹配 0 個或多個字符。這意味著:
p10{這里恰好是任何型別的字符}7{這里任何型別的零個或多個字符}
您沒有意識到這一點,但.您第一次嘗試中的角色也表現得像一個單字符通配符。這可能與p10x7abcdefg例如匹配。它也確實匹配p10.7.8。但要小心,它也匹配p10.78,因為.*模式末尾的運算式很樂意匹配任何字符序列,因此p10.7接受后面的任何和所有字符。
嘗試#2:p10_7_*
_僅匹配文字下劃線。但是_*意味著匹配零個或多個下劃線。這并不意味著匹配任何型別的字符。所以p10_7_*匹配諸如p10_7_______. 字面上地:
p10_7{這里有零個或多個下劃線}
你可以做什么:
你可能想要一個正則運算式p10_7_\d
這將匹配諸如p10_7_3or之類的東西p10_7_422。它通過匹配文字文本p10_7_后跟一個或多個數字來作業,其中一個數字是0through 9。 \d匹配任何數字, 表示匹配前面的一個或多個。字面上地:
p10_7_{這里是一位或多位數字}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/443808.html
