REGEX '\K' 在 RUTA 中不起作用,但在 REGEX 构建器中起作用

REGEX '\K' is not working in RUTA but working in REGEX buidler

我正在尝试使用下面的 REGEX 从模式中提取最后 3 个字符,它在在线 REGEX 测试器中工作但在 RUTA 中不工作。

以下是我在在线 REGEX 生成器中尝试过的代码: https://regex101.com/r/2JN9a5/1

以下是我在 RUTA 中尝试过的代码:

"(?i)\b([QI]{2}|[Q])[\s || -]{0,2}[0-9]{5,}[\s || -]{0,2}\K[A-Z]{3}\b" -> EntityType;

如果是 Pega 那么试试这个

PACKAGE uima.ruta.example;

DECLARE VarA;
DECLARE VarB;
DECLARE VarC;


W{REGEXP("Q|QI") -> MARK(VarA)}
 (WS|"-")?  
  NUM{REGEXP(".{1,7}")-> MARK(VarB)}
 (WS|"-")?
  W{REGEXP(".{1,3}")-> MARK(VarC),MARK(EntityType,5,5), UNMARK(VarA), UNMARK(VarB), UNMARK(VarC)};

解释:-

(WS|"-")? :- Space 或“-”。如果其中之一已修复,您可以删除 ?

NUM{REGEXP(".{1,7}") :- 1 到 7 之间的数字。

W{REGEXP(".{1,3}") :- 大写字母 1 到 3.

MARK(EntityType,5,5) :- 仅标记第 5 行。即 W{REGEXP(".{1,3}")。如果你标记 MARK(EntityType,1,5) 那么它将 return Q-123456-PAD.