2

找不到 FirstToken 以供某些参考(末尾包含空格)。

脚本:

DECLARE FirstToken, LastToken;

BLOCK(InRef) Reference{}{
    ANY{POSITION(Reference,1) -> MARK(FirstToken)};
    Document{-> MARKLAST(LastToken)};
}

输入文件:

1.  Ferreira, F.R., Prado, S.D., Carvalho, M.C, and Kraemer, F.B. (2015). Biopower and biopolitics in the field of food and nutrition. Revista de Nutrição, 28(1), 109-119. Available at http://dx.doi.org/10.1590/1415-52732015000100010. 
2.  Ali, S. (2007). Feminism and postcolonialism: Knowledge/politics. Ethnic and Racial Studies, 30(2), 191–212.  
3.  Forbes, D.A., King, K.M., Kushner, K.E., Letourneau, N.L., Myrick, A.F., and Profetto-McGrath, J. (1999). Warrantable evidence in nursing science. Journal of Advanced Nursing, 29(2), 373–379.
4

1 回答 1

1

以不可见的东西开始或结束的注释也是不可见的。这个定义可能听起来不直观,但对于顺序匹配是必需的。

如果某些注释以空格开头,则最常发生这种情况。建议从注释中删除/修剪这些空格,例如,使用:

RETAINTYPE(WS); // or RETAINTYPE(SPACE, BREAK,...);
Reference{-> TRIM(WS)};
RETAINTYPE;

如果您使空格可见,您还可以处理以空格结尾的注释:

RETAINTYPE(SPACE);

除此之外,您还可以使用 MARKFIRST 操作,如 MARKLAST 操作,而不是 POSITION 条件,这非常慢。

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

于 2016-06-13T08:12:28.567 回答