我有以下示例文本:
zip 20193
纽约
美国
我想做什么,只是匹配"纽约"即邮政编码后面的一行。
我尝试使用此代码,但它无效 -
DECLARE标题; BREAK#{ - > MARK(标题)} BREAK;
(我之前已宣布过针脚。)
请让我知道如何解决这个问题。
谢谢!
答案 0 :(得分:0)
问题可能是过滤设置。默认情况下,BREAK不可见。它永远不会成功,因为ruta会自动跳过换行符。
尝试添加另一条更改规则前面的过滤设置的规则:
RETAINTYPE(BREAK);
pin BREAK #{-> MARK(heading)} BREAK;
可能还有另一个问题,因为BREAK代表\ n和\ r \ n。因此,该规则不适用于Windows行结尾。你需要这样的东西:
pin BREAK[1,2] #{-> MARK(heading)} BREAK;
在ruta中有一个用于注释行的utils分析引擎:PlainTextAnnotator 如果你包括它,你可以写一些类似的东西:
pin Line{-> heading};
(您可能需要修剪线条,例如,如果线条以空格开头或结尾,则使用TRIM操作)
免责声明:我是UIMA Ruta的开发者