0

我正在尝试使用以下脚本从模式中提取最后 3 个字符。但它不适用于没有空格的模式。

以下是我尝试过的代码:

((W|NUM)* (W|NUM)*){REGEXP(".{2}")-> MARK(VarA)}
 (WS|"-")?  
((W|NUM)* (W|NUM)*){REGEXP(".{7}")-> MARK(VarB)}
 (WS|"-")?
  W{REGEXP(".{3}")-> MARK(VarC),MARK(EntityType,1,5), UNMARK(VarA), UNMARK(VarB), UNMARK(VarC)};

示例 1:

输入/输出:A1-1B1A21A-PAD

输出/输出:垫

示例 2:

输入/输出:A11B1A21APAD

经验操作:垫

第一个例子工作正常。但它不适用于第二个示例。没有“空格”时,它无法识别

请分享你的想法。提前致谢。

4

1 回答 1

1

如果您只想提取 UIMA Ruta 中任何字符串的最后 3 个字符,那么以下规则应该可以完成这项工作:

"(...)$" -> 1 = VarC;

然后,您可以过滤掉匹配的误报。

于 2019-07-17T11:46:09.170 回答