regex在Ruta是如何工作的?
我正在尝试使用正则表达式验证日期和其他表达式。它在java中工作,但无法在RUTA中进行注释 样本输入:regex在Ruta是如何工作的?,regex,uima,ruta,Regex,Uima,Ruta,我正在尝试使用正则表达式验证日期和其他表达式。它在java中工作,但无法在RUTA中进行注释 样本输入: Date 10-20-1994 代码: // Field Name - Date (Regex) DECLARE Keyword DateKeyword; DECLARE Entity Date; "Date" -> DateKeyword("label"="Date"); BLOCK(feature13) Line{CONTAINS(DateKeyword)} { DateKey
Date 10-20-1994
代码:
// Field Name - Date (Regex)
DECLARE Keyword DateKeyword;
DECLARE Entity Date;
"Date" -> DateKeyword("label"="Date");
BLOCK(feature13) Line{CONTAINS(DateKeyword)} {
DateKeyword c:ANY+{REGEXP("^\\d{2}-\\d{2}-\\d{4}$")->CREATE(Date, "label"= "Date", "value"=c.ct)};
}
无法为日期添加批注。请说明我错过了什么
用于字母数字字符串
输入-test\u 2309
注释test
输入-test2309
注释test2309
代码-c:ANY+{REGEXP(“[a-zA-Z0-9]*”)
如何确保它注释全部或返回false。而不是返回覆盖文本?正则表达式模式的工作方式与Java中的工作方式相同。您缺少的是应用正则表达式的注释范围。在原始情况下,
ANY+
迭代地匹配每个标记(而不是您所期望的整体)。因此,“10”、“-”、“20”等都不能满足正则表达式模式。您应该首先在所需的跨度上创建注释,并在其上应用正则表达式
DECLARE DateKeyword (STRING label);
DECLARE Date (STRING label, STRING value);
DECLARE DateCandidate, Dash;
SPECIAL{-PARTOF(Dash), REGEXP("[-]")-> Dash};
"Date" -> DateKeyword("label"="Date");
DateKeyword ANY[1,5]{OR(PARTOF(Dash), PARTOF(NUM)), -PARTOF(W) -> DateCandidate};
BLOCK(feature13) Line{CONTAINS(DateKeyword)} {
DateKeyword c:DateCandidate{REGEXP("\\d{2}-\\d{2}-\\d{4}")->CREATE(Date, "label"= "Date", "value"=c.ct)};
}
或者,您可以在单独的Ruta seed注释上应用regex模式:
(NUM{REGEXP("\\d{2}")} SPECIAL NUM{REGEXP("\\d{2}")} SPECIAL NUM{REGEXP("\\d{4}")}){-PARTOF(Date) -> Date};
正则表达式模式的工作方式与Java中的工作方式相同。您缺少的是应用正则表达式的注释范围。在原始情况下,
ANY+
迭代地匹配每个标记(而不是像您预期的那样作为一个整体)。因此,“10”、“-”和“20”等等,不要满足正则表达式模式。您应该首先在所需的跨度上创建注释,并在其上应用正则表达式
DECLARE DateKeyword (STRING label);
DECLARE Date (STRING label, STRING value);
DECLARE DateCandidate, Dash;
SPECIAL{-PARTOF(Dash), REGEXP("[-]")-> Dash};
"Date" -> DateKeyword("label"="Date");
DateKeyword ANY[1,5]{OR(PARTOF(Dash), PARTOF(NUM)), -PARTOF(W) -> DateCandidate};
BLOCK(feature13) Line{CONTAINS(DateKeyword)} {
DateKeyword c:DateCandidate{REGEXP("\\d{2}-\\d{2}-\\d{4}")->CREATE(Date, "label"= "Date", "value"=c.ct)};
}
或者,您可以在单独的Ruta seed注释上应用regex模式:
(NUM{REGEXP("\\d{2}")} SPECIAL NUM{REGEXP("\\d{2}")} SPECIAL NUM{REGEXP("\\d{4}")}){-PARTOF(Date) -> Date};
日期使用下面的
c:{REGEXP(“^\\d{2}\\\\-\\d{2}\\\\-\\d{4}$”)->CREATE(Date)
Date使用下面的c:{REGEXP(^\\d{2}\\\\\\\\\\d{2}\\\\\\\\\\d{4}$”->CREATE(Date code)