我寫了一個正則運算式
\blates(t|)?\b
在句子“/man/service/man-aaaaaa-llllll-latest/zzzn2-iii-ooo-x00_00-gg”中搜索單詞“latest”。
我正在通過 Rego 操場測驗“Rego”中的規則,每當句子中有“最新”一詞時,我都希望得到一個布爾輸出為“真”。
Rego游樂場鏈接:https ://play.openpolicyagent.org/p/e3vDQyYKlc
重新輸入
{
"message": "/man/service/man-aaaaaa-lllll-latest/zzzn2-iii-ooo-x00_00-gg"
}
雷哥規則:
package play
default hello = false
hello {
m := input.message
regex.match("\blates(t|)?\b", m)
}
電流輸出:
{
"hello": false
}
每當 Regex 匹配單詞“最新”時的預期輸出:
{
"hello": true
}
請建議我是否必須使用任何其他正則運算式條件來實作預期結果 https://www.openpolicyagent.org/docs/latest/policy-reference/#regex
uj5u.com熱心網友回復:
您可以使用
regex.match("\\blatest?\\b", m)
或者
regex.match(".*\\blatest?\\b.*", m)
請參閱Rego 游樂場演示。
請注意,這(t|)?是一個匹配t或空字串的捕獲組,并且基本上等于匹配可選字符t?的模式(無需捕獲)。tt
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/458798.html
上一篇:組合否定字符和捕獲組
下一篇:根據特定值在陣列中查找某個索引
