我正在尝试使用 UIMA RUTA 中的正则表达式将下面的字符串注释为类型。
示例:
其他变体:
******* $ 99 **
正则表达式:* + \ $ \ d +。\ d + * +
UIMA REGEX:
SPECIAL{REGEXP("\\*+\\$\\d+.\\d+\\*+") -> MARK(AmC,1)};
我无法检测到*表示贪婪的正则表达式,但因为我正在使用转义字符()仍然缺少某些东西。任何解决方法?
PS:它适用于其他正则表达式引擎但不适用于UIMA RUTA
答案 0 :(得分:1)
REGEXP条件在规则元素的匹配注释的覆盖文本上应用Java模式matches()
。在您的示例中,这是SPECIAL
,这是一个特殊字符。因此,正则表达式尝试匹配单个“*”然后重新创建下一个字符(不包括数字和句点)。
REGEXP条件在这里并不合适。您应该使用简单的正则表达式规则,如:
"\\*+\\$\\d+.\\d+\\*+" -> AmC;
免责声明:我是UIMA Ruta的开发者