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;
- 输入:
Q-123456-PAD
Exp O/p: PAD
输入:QI-1234567-PLB
- Exp O/P:
PLB
如果是 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
.
我正在尝试使用下面的 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
- Exp O/P:
PLB
如果是 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
.