首页 > 解决方案 > REGEX '\K' 不在 RUTA 中工作,但在 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;

标签: regexuimarutapega

解决方案


如果是,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|"-")?:- 空格或“-”。?如果其中一个已修复,您可以删除。

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),那么它将返回Q-123456-PAD


推荐阅读