[] | 方括号包含单个标记。 | [] 任何单词或标点符号。 |
| 标记文本 | "" | 引号表示具有指定文本的标记。 | ["Grantor"] 包含单词”Grantor”的标记。 |
| 变量 | : | 冒号用于为其后的标记序列分配名称。注意:该变量仅在同一规则内可用,即直到右侧部分以分号结束。 | [t: "Contract"] 查找包含单词”Contract”的标记并将其分配给变量 t。 |
| 词元 | L"word" Lemma"word" | 单词前的”L”或”Lemma”表示搜索应查找该单词的所有形式。 | [L"rule"] 将找到诸如”rule”、“rules”、“ruled”和”ruling”等标记。 |
| 正则表达式 | /regular expression/ | 单个正斜杠包含正则表达式。与正则表达式值搜索元素一样,使用 PCRE2 正则表达式语法。 | /[1]?\d:\d{2}\s+(([ap]\.m\.) | ([AP]M))?/ 该模板将匹配 12 小时格式的时间,例如”2:00 p.m.”、“9:34 AM”。 |
| 正则表达式的选项设置 | /regular expression/i | 选项设置可以放在关闭正则表达式的正斜杠之后。例如,“i”选项表示正则表达式的不区分大小写匹配。 | /[1]?\d:\d{2}\s+([ap]\.?m\.?)?/i 此模板通过不区分大小写匹配简化了上面的示例。它将匹配 12 小时格式的时间,例如”2:00 p.m.”、“9:34 AM”。 |
| 标记谓词 | <first_in_paragraph> | 标记是段落中的第一个。 | ["Section" <first_in_paragraph>] 单词”Section”开始段落。例如,您可以使用它来提取紧跟此标记之后的节号。 |
| 标记谓词 | <punctuator> | 标记是标点符号。 | ["Tenant"] [<punctuator>]{0,2} 单词”Tenant”后面可以跟最多两个标点符号,例如右括号和逗号。 |
| 标记谓词 | <initial_letter_capitalized> | 标记以大写字母开头。 | [L"agreement" <initial_letter_capitalized>] 此模板将匹配”Agreement”和”Agreements”,但不匹配”agreement”。 |
| 标记谓词 | <mixed_capitalization> | 标记的部分字母(但不是全部)大写。 | [L"letter" <mixed_capitalization>] 此模板将匹配,例如”Letters”和”letteR”。 |
| 标记谓词 | <all_letters_capitalized> | 标记全部为大写字母。 | [t: @NEROrganization <all_letters_capitalized>]+ 此模板将匹配以全大写形式书写的组织命名实体。 |
| 逻辑或 | | | 竖线用于指定替代标记文本或标记的替代条件。 | ["Lender" | "Co-Lender"] ["shall"] ["have"] 此模板将匹配以下任一字符串:“Lender shall have”或”Co-Lender shall have” |
| 逻辑与 | 空格 | 空格用作标记条件的逻辑连接。 | [t: "Section" <first_in_paragraph>] 查找包含单词”Section”并且开始段落的标记。 |
| 对象条件 | @object_name | at 符号(”@“)检查标记是否位于对象区域内。支持以下对象:命名实体对象,与作为专用搜索元素提供的类型相同,以”NER”为前缀:NERPerson、NEROrganization、NERAddress、NERLocation、NERDate、NERDuration、NERMoney;搜索元素;Sentence - 为文本流中的每个句子创建单独的对象;Paragraph - 为文本流中的每个段落创建单独的对象。 | [t: @NEROrganization]+ ["Lender"] 将名称 t 分配给包含 NEROrganization 实体且后跟关键字”Lender”的标记序列。[t: @NERPerson @Preamble_Segment ]+ 在序言段中查找人名(由**输入字段**搜索元素表示)。 |
| 分隔相似对象 | @object_name( same ) | “same”表示在重复标记上,将同一对象匹配到标记序列,而不是此类型的多个对象。如果对象条件使用逻辑或,则不应使用”same”。 | 例如,如果您有一个人名列表依次排列,它们都将被检测为 NERPerson。要一次提取一个人名,请使用”same”条件。[t: @NERPerson( same )]+ 将名称 t 分配给找到的第一个人。 |
| 相对位置 | @object_name( right_to( another_object )) @object_name( left_to( another_object )) | “right_to”表示 object_name 在括号中指定的 another_object 之后找到。“left_to”表示 object_name 在括号中指定的 another_object 之前找到。 | [ t: @NERAddress( same, right_to( id1 ), left_to( id2 ) )] 在 id1 和 id2 之间查找 NERAddress 命名实体。 |
| 逻辑或(用于对象条件) | | | 竖线也可以用作对象条件的逻辑析取。 | [t: @NERPerson( right_to( id1 ) | right_to( id2 ) )] 将名称 t 分配给位于 id1 之后或 id2 之后的人名。 |
| 标记序列 | 空格 | 序列中的标记由空格分隔。 | ["Grantor"] [":"] 此模板将匹配”Grantor:“。即使这些单词不需要提取,也可以简单地为上下文指定标记。 |
| 替代标记序列 | [token1] | ([token2][token3]) | 竖线用于指定替代标记序列。圆括号设置优先级。 | ["will"] (["start"] | (["take"] ["place"])) ["on"]此模板将匹配以下任一字符串:“will start on”或”will take place on”。请注意,如果我们省略括号,模板还会匹配”will start place on”。括号确保”take place”短语要么完全存在,要么完全不存在。**注意:**对于更复杂的实际替代标记序列情况,您可能会发现为每个替代方案编写单独的规则更方便:["will"] ["start"] ["on"] => ...; ["will"] ["take"] ["place"] ["on"] => ...; |
| 可选标记 | []? | 问号表示该标记是可选的。 | ["Tenant"] ["."]? 单词 “Tenant” 后面可以跟一个点。 |
| 可选重复标记 | []* | 星号表示该标记是可选的,并且可以重复多次。 | ["Grantor"] []* ["Tenant"] 关键词 “Grantor” 和 “Tenant” 之间可以用任意数量的标记分隔,也可以不分隔。 |
| 必需重复标记 | []+ | 加号表示该标记应至少出现一次,并且可以重复。 | [@NERPerson]+ 指定应找到一个人名,可能跨越多个标记,因为人名通常由多个单词组成。 |
| 指定重复次数的标记 | []{n,} []{n,m} | 花括号中的数字表示该标记应重复 n 到 m 次。如果未指定第二个数字,则该标记应至少重复 n 次。注意: 如您所见,{0,} 等同于 *,而 {1,} 等同于 +。 | ["Grantor"] []{1,3} ["Tenant"] 关键词 “Grantor” 和 “Tenant” 之间应由 1 到 3 个标记分隔。这可能比 * 更有用,因为您可以指定这两个关键词之间的距离不要太远。 |