REGEX '\ K' не работает в RUTA, но работает в REGEX buidler - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь извлечь последние 3 символа из шаблона, используя ниже REGEX, который работает в онлайн-тестере 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
  • ExpO / p: PAD

  • Ввод: QI-1234567-PLB

  • Эксп. O / P: PLB

1 Ответ

1 голос
/ 10 июля 2019

Если это 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.

...