| 標記(token) | [] | 方括號用來括住單一標記。 | [] 任意一個詞或標點符號。 | | |
| 標記文字(token text) | "" | 引號用來表示具有指定文字內容的標記。 | ["Grantor"] 文本為 “Grantor” 的標記。 | | |
| 變數(variable) | : | 冒號用於為其後的標記序列指定名稱。**注意:**該變數僅在同一規則內可用,也就是說,只在右側部分以分號結束之前有效。 | [t: "Contract"] 尋找包含單詞 “Contract” 的 token,並將其指派給變數 t。 | | |
| 詞元(lemma) | L"word" Lemma"word" | 在單字前加上「L」或「Lemma」表示搜尋時應找到該單字的所有詞形變化。 | [L"rule"] 會找到 “rule”、“rules”、“ruled” 和 “ruling” 等所有詞形的標記。 | | |
| 正規表示式 | /regular expression/ | 以單一正斜線將正規表示式括起來。與 Value from Regular Expression 搜尋元素相同,使用 PCRE2 正規表示式語法。 | `/[1]?\d:\d2\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”。 | | |
| 標記述詞(token predicates) | <first_in_paragraph> | 該標記位於段落的起首。 | ["Section" <first_in_paragraph>] 字詞 “Section” 出現在段落開頭。舉例來說,你可以利用這個條件來擷取緊接在此標記之後的章節編號。 | | |
| 標記述詞(token predicates) | <punctuator> | 該標記是一個標點符號。 | ["Tenant"] [<punctuator>]{0,2} 單字 “Tenant” 之後可以接續最多兩個標點符號,例如一個右括號和一個逗號。 | | |
| 標記述詞(token predicates) | <initial_letter_capitalized> | 該標記的第一個字母為大寫。 | [L"agreement" <initial_letter_capitalized>] 此範本會匹配 “Agreement” 和 “Agreements”,但不會匹配 “agreement”。 | | |
| 標記述詞(token predicates) | <mixed_capitalization> | 該標記中有部分(但非全部)字母為大寫。 | [L"letter" <mixed_capitalization>] 此模板將會比對,例如 “Letters” 和 “letteR”。 | | |
| 標記述詞(token predicates) | <all_letters_capitalized> | 該標記全部字母皆為大寫。 | [t: @NEROrganization <all_letters_capitalized>]+ 此範本會比對所有以全大寫字母表示的組織類命名實體。 | | |
| 邏輯 OR | ` | ` | 垂直線用來指定替代的標記文字或標記的替代條件。 | `[“Lender" | "Co-Lender”] [“shall”] [“have”]` 此範本會比對以下任一字串:「Lender shall have」或「Co-Lender shall have」。 |
| 邏輯 AND | 空白字元 | 空白字元用作標記條件之間的邏輯連接符。 | [t: "Section" <first_in_paragraph>] 尋找同時包含字詞 “Section” 且位於段落開頭的 token。 | | |
| 物件條件(object condition) | @object_name | @ 符號(”@“)會檢查該 token 是否位於物件範圍內。支援下列物件:具名實體物件(Named entity objects),其類型與可作為特殊搜尋元素使用的類型相同,並以 “NER” 作為前綴:NERPerson、NEROrganization、NERAddress、NERLocation、NERDate、NERDuration、NERMoney;搜尋元素(Search elements);Sentence —— 在文字流中的每個句子都會建立一個獨立的物件;Paragraph —— 在文字流中的每個段落都會建立一個獨立的物件。 | [t: @NEROrganization]+ ["Lender"] 將名稱 t 指派給包含 NEROrganization 實體且後接關鍵字 “Lender” 的 token 序列。[t: @NERPerson @Preamble_Segment ]+ 在前言區段中尋找人名(由 Input field 搜尋元素表示)。 | | |
| 區分相似物件 | @object_name( same ) | 「same」表示在重複的標記上,會將同一個物件比對到這一串標記,而不是比對為多個此類型的物件。若物件條件中使用邏輯 OR,則不應使用「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 命名實體。 | | |
| 邏輯 OR(用於物件條件) | ` | ` | 垂直線也可用作物件條件之間的邏輯「或」(OR)。 | `[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]+ 指定必須找到至少一個人名,且可能會跨越多個標記(token),因為人名通常由多個詞組成。 | | |
| 具有指定重複次數的權杖 | []{n,} []{n,m} | 大括號中的數字表示該 token 應重複 n 到 m 次。如果未指定第二個數字,則該 token 至少必須重複 n 次。**注意:**可以看到,{0,} 等同於 *,而 {1,} 等同於 +。 | ["Grantor"] []{1,3} ["Tenant"] 關鍵字「Grantor」和「Tenant」之間應以 1 到 3 個 token 分隔。這可能比 * 更實用,因為這樣可以指定這兩個關鍵字之間的距離不要太遠。 | | |