REGEX'\ K'在RUTA中不起作用,但在REGEX buidler中起作用

时间:2019-07-10 07:22:05

标签: regex uima ruta pega

我正在尝试使用下面的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;
  • 输入:Q-123456-PAD
  • Exp O / p:PAD

  • 输入:QI-1234567-PLB

  • O / P:PLB

1 个答案:

答案 0 :(得分:1)

如果是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