Rego 正则表达式以匹配句子中的特定单词
Rego regex to match a specific word from a sentence
我写了一个正则表达式
\blates(t|)?\b
在句子“/man/service/man-aaaaaa-lllll-latest/zzzn2-iii-ooo-x00_00-gg”中搜索单词“最新”。
我正在通过 Rego 游乐场测试 'Rego' 中的规则,每当句子中有单词 'latest' 时,我想得到一个布尔输出 'true'。
雷哥游乐场link:https://play.openpolicyagent.org/p/e3vDQyYKlc
重新输入
{
"message": "/man/service/man-aaaaaa-lllll-latest/zzzn2-iii-ooo-x00_00-gg"
}
Rego 规则:
package play
default hello = false
hello {
m := input.message
regex.match("\blates(t|)?\b", m)
}
当前输出:
{
"hello": false
}
每当 Regex 匹配单词 'latest' 时的预期输出:
{
"hello": true
}
请建议我是否必须使用任何其他正则表达式条件来实现预期结果
https://www.openpolicyagent.org/docs/latest/policy-reference/#regex
你可以使用
regex.match("\blatest?\b", m)
或
regex.match(".*\blatest?\b.*", m)
注意(t|)?
是匹配t
或空串的捕获组,基本等于t?
模式(不需要捕获t
=]) 匹配可选的 t
字符。
我写了一个正则表达式
\blates(t|)?\b
在句子“/man/service/man-aaaaaa-lllll-latest/zzzn2-iii-ooo-x00_00-gg”中搜索单词“最新”。
我正在通过 Rego 游乐场测试 'Rego' 中的规则,每当句子中有单词 'latest' 时,我想得到一个布尔输出 'true'。
雷哥游乐场link:https://play.openpolicyagent.org/p/e3vDQyYKlc
重新输入
{
"message": "/man/service/man-aaaaaa-lllll-latest/zzzn2-iii-ooo-x00_00-gg"
}
Rego 规则:
package play
default hello = false
hello {
m := input.message
regex.match("\blates(t|)?\b", m)
}
当前输出:
{
"hello": false
}
每当 Regex 匹配单词 'latest' 时的预期输出:
{
"hello": true
}
请建议我是否必须使用任何其他正则表达式条件来实现预期结果 https://www.openpolicyagent.org/docs/latest/policy-reference/#regex
你可以使用
regex.match("\blatest?\b", m)
或
regex.match(".*\blatest?\b.*", m)
注意(t|)?
是匹配t
或空串的捕获组,基本等于t?
模式(不需要捕获t
=]) 匹配可选的 t
字符。