Обнаружить строку ниже, используя регулярное выражение в uima RUTA

Я пытаюсь аннотировать строку ниже как тип, используя регулярное выражение в UIMA RUTA.

ОБРАЗЕЦ:

  • *******$10.00*

Другой вариант:

  • *******$10.00***
  • *******$90.00*
  • *******$99**

    Регулярное выражение: *+\$\d+.\d++*+

Регулярное выражение UIMA:

SPECIAL{REGEXP("\\*+\\$\\d+.\\d+\\*+") -> MARK(AmC,1)};

Я не могу определить, как * представляет жадное регулярное выражение, но поскольку я использую escape-символ(), все равно чего-то не хватает. Любое обходное решение?

PS: он работает для другого механизма регулярных выражений, но не работает в UIMA RUTA


person Gaurav    schedule 10.07.2017    source источник
comment
Вы забыли дважды экранировать последнюю обратную косую черту перед звездочкой (при условии, что вам нужно дважды экранировать). Также, возможно, вам нужны пограничные маркеры?   -  person Tim Biegeleisen    schedule 10.07.2017
comment
@TimBiegeleisen работает, когда я тестировал на regex101.com, но не работает в UIMA RUTA.   -  person Gaurav    schedule 10.07.2017
comment
Это не сработает, поскольку условие применяется только к закрытому тексту совпадающей аннотации, которая представляет собой только часть требуемой строки.   -  person Peter Kluegl    schedule 10.07.2017
comment
@PeterKluegl, но, поскольку я плюс жадный, он должен аннотировать.   -  person Gaurav    schedule 10.07.2017
comment
Наоборот: регулярное выражение не увидит достаточно текста для полного совпадения. добавлю ответ...   -  person Peter Kluegl    schedule 10.07.2017


Ответы (1)


Условие REGEXP применяет шаблон Java matches() к скрытому тексту соответствующей аннотации элемента правила. В вашем примере это SPECIAL, который является одним специальным символом. Таким образом, регулярное выражение пыталось сопоставить один «*», а затем заново следующий символ (исключая цифру и точку).

Условие REGEXP здесь не очень подходит. Вам лучше использовать простое правило регулярного выражения, например:

"\\*+\\$\\d+.\\d+\\*+" -> AmC;

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: я разработчик UIMA Ruta

person Peter Kluegl    schedule 10.07.2017
comment
Работай как шарм. Большое спасибо за такое блестящее объяснение. - person Gaurav; 10.07.2017