【发布时间】:2014-08-03 16:10:30
【问题描述】:
我的用例是这样的,我在 WORDLIST“MonthNames.txt”中有一个匹配词列表。
现在我想在给定文档中标记这些单词的所有出现,而不考虑文本大小写。
PACKAGE uima.ruta.example;
WORDLIST MonthNameList = 'MonthNames.txt';
DECLARE MonthNames;
DECLARE MonthNameValue;
// Regex to be used in finding dates
STRING monthNameValueRegex = "(?i)(january|february|march|april|may|june|july|august|september|october|november|december|jan|feb|mar|apr|jun|jul|aug|sept|oct|nov|dec)";
// Mark month name
Document{-> MARKFAST(MonthNames, MonthNameList)};
Document{CONTAINS(MonthNames) -> MARK(MonthNameValue)};
Document{REGEXP(monthNameValueRegex) -> MARK(MonthNameValue)};
有什么办法吗?
我试过了
Document{-> MARKFAST(MonthNames, MonthNameList,true)};
但这只是忽略空格而不是文本大小写。
请帮忙
【问题讨论】:
-
文档说“第三个参数是可选的。它定义了 MARKFAST 操作是否应该忽略大小写,其默认值为 false。”
-
如果您使用正常的过滤设置,默认情况下应该忽略空格。 MARKFAST 的论点应该可以解决问题。如果没有,那么可能还有另一个问题。然后,您可以发布更多信息,例如可重现的示例。
-
普通正则表达式可以这样使用:"(?i)(january|february)" -> MonthNameValue;您示例中的最后两条规则不会像您预期的那样起作用,因为它们会尝试使用一个注释来注释完整的文档。
-
我打算忽略文本大小写。如果“MonthNames.txt”包含一月条目,我想标记“JANUARY”、“January”、“JaNuArY”等。
-
为此目的维护 RegEx 也相当麻烦。请提出建议。
标签: uima ignore-case ruta