如何获取其他行中存在于注释关键字上方/下方的数据?我可以注释关键字,但无法获取信息
示例文本:
Underwriter's Name Appraiser's Name Appraisal Company Name
Alice Wheaton Cooper Bruce Banner Stark Industries
代码
TYPESYSTEM utils.PlainTextTypeSystem;
ENGINE utils.PlainTextAnnotator;
EXEC(PlainTextAnnotator, {Line});
ADDRETAINTYPE(WS);
Line{->TRIM(WS)};
REMOVERETAINTYPE(WS);
Document{->FILTERTYPE(SPECIAL)};
DECLARE UnderWriterKeyword, NameKeyword, UnderWriterNameKeyword;
DECLARE UnderWriterName(String label, String value);
CW{REGEXP("\\bUnderwriter") -> UnderWriterKeyword};
CW{REGEXP("Name")->NameKeyword};
(UnderWriterKeyword SW NameKeyword){->UnderWriterNameKeyword};
ADDRETAINTYPE(SPACE);
Line{CONTAINS(UnderWriterNameKeyword)} Line -> {
(CW SPACE)+ {-> MARK(UnderWriterName)};
};
REMOVERETAINTYPE(SPACE)
预期输出:
Underwriter's Name: Alice Wheaton Cooper
Appraiser's Name: Bruce Banner
Appraisal Company Name: Stark Industries
[请提出在RUTA中是否可行?如果为true,如何获取数据?
Header<-{hc:Cell{hc.column == c.column}<-{k:Keyword;};}
# c:@Cell{-PARTOF(Header) -> e:Entry, e.keyword = k};
它包含三个规则元素,Header
,#
和Cell
,是这样工作的:
该规则开始与
Cell
规则匹配,因为它被@
标记为锚点。
Cell
注释或不属于Header
注释的部分上都匹配。它从满足此条件的第一个Cell
注释开始,并将其称为“ c”。#
,它将匹配直到下一个规则元素能够匹配。Header
注释的范围内匹配,则下一个规则元素在Header
注释上匹配。在此范围内,在Cell
注释上匹配的内联规则记为“ hc”,具有与特征column
相同的值。如果匹配包含记住为“ k”的“关键字”,则匹配成功。Entry
注释的跨度上创建了一个名为“ e”的Cell
注释。Entry
功能keyword
。Entry
注释创建一个Cell
注释,并分配相应列的header关键字以定义条目的类型。Line{CONTAINS(UserName)} Line -> { //your logic here };