使用uima RUTA中的regex检测字符串下方

时间:2017-07-10 07:48:03

标签: regex regex-greedy uima uimanageddocument ruta

我正在尝试使用 UIMA RUTA 中的正则表达式将下面的字符串注释为类型。

  

示例:

  • ******* $ 10.00 *
  

其他变体:

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

    正则表达式:* + \ $ \ d +。\ d + * +

UIMA REGEX:

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

我无法检测到*表示贪婪的正则表达式,但因为我正在使用转义字符()仍然缺少某些东西。任何解决方法?

  

PS:它适用于其他正则表达式引擎但不适用于UIMA RUTA

1 个答案:

答案 0 :(得分:1)

REGEXP条件在规则元素的匹配注释的覆盖文本上应用Java模式matches()。在您的示例中,这是SPECIAL,这是一个特殊字符。因此,正则表达式尝试匹配单个“*”然后重新创建下一个字符(不包括数字和句点)。

REGEXP条件在这里并不合适。您应该使用简单的正则表达式规则,如:

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

免责声明:我是UIMA Ruta的开发者