如何使用正则表达式设置Kogito KIE数据类型约束表达式?
KIE DMN Editor正则约束表达式配置方法
在KIE DMN Editor中,数据类型的表达式约束需要遵循FEEL(Friendly Enough Expression Language)语法,以下是正确的配置方式及问题排查:
核心语法规则
FEEL的matches函数用于正则匹配,正确格式为:
matches(self, "正则表达式")
self:代表当前被校验的字段值,无需自定义变量名,也不能加引号。- 正则表达式字符串:需要用双引号包裹,且转义字符(如
\d)必须写成双反斜杠\\d,否则会被FEEL解析为无效转义。
针对你的需求的示例
1. 匹配单个数字
正确表达式:
matches(self, "\\d")
2. 匹配UTC格式字符串(ISO 8601标准,如2024-05-20T12:30:45Z)
正确表达式:
matches(self, "\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z")
你之前的错误原因
- 用引号包裹变量(如
"?","\d"):FEEL会将带引号的?识别为字符串字面量,而非字段变量,导致解析报错。 - 单转义字符
\d:FEEL中字符串内的转义需要双反斜杠,单斜杠会被视为无效语法。 - 语法缺失(如少引号
matches(?","\d")):直接导致DMN XML格式损坏,无法加载。
内容的提问来源于stack exchange,提问作者Geodepe
相关产品推荐
相关产品推荐

