我正在尝试使用下面的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
PLB
答案 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
。