使用正規表示式來尋找詞彙

定義正規表示式以擷取顯著性型樣,例如 AB10045 是用於訂單號碼的語法。

定義正規表示式,以從集合中的欄位識別及擷取資訊。

例如,此正規表示式會尋找特定格式及長度的信用卡號碼出現項目。

4[0-9]{15}

下列正規表示式會尋找出現的美國社會保險號碼。

(?!666|000|9\d{2})\d{3}-(?!00)\d{2}-(?!0{4})\d{4}

若要新增正規表達式,請完成下列步驟:

  1. 從「改善工具」畫面的 變更網域概念 區段中,選擇 正規表示式。

  2. 按一下上傳。

  3. 選用: 指定資料類型路徑,以分類符合正規表示式的任何文字。 稍後可以依這個資料類型來過濾文字。

    如果您使用種類的階層,請在資料類型路徑中的種類名稱之間新增句點,以代表階層。 例如,如果您要新增可辨識電話號碼的正規表示式,則可能具有 international.europe 之類的資料類型路徑。

  4. 新增正規表示式。

    • 使用 Java™ 正則表達式。

      如需詳細資訊,請參閱 Java 文件。 另一個有用的資源是 Regex 101。

    • 盡可能讓正規表示式保持簡短且可理解。

    • 最佳正規表示式會快速解析為相符或非相符。

    • 使用一般型樣。 例如,請使用 a(b|c|d),而不要使用 (ab|ac|ad)。

    • 如果正則表達式引擎因無法在字串末端進行負向匹配而反向嘗試過多的排列,則可能會失敗。 若要防止回溯,請考慮使用佔有限量元,例如 (a+b*)++c。

  5. 按一下建立。

  6. 選擇集合及欄位,以搜尋符合此正規表示式型樣的文字出現處。

在輸出中,透過正則表達豐富萃取的資訊可以在 enriched_{field_name} 下找到,在 entities 陣列中。

在此範例中,資料類型路徑 是 regex.cccardnumber,而選取進行強化的欄位是 text。

{
  "enriched_text": [
    {
      "entities": [
        {
          "path": ".regex.cccardnumber",
          "type": "cccardnumber",
          "text": "4000000000000000"
        }
      ]
    }
  ],
  "text": [
    "He has 2 phones, 090-1234-5678 and 080-1234-5678. His credit card number is 4000000000000000."
  ]
}

從「改善及自訂」頁面提交測試查詢時,您可以新增基於 enriched_text.entities.model_name 欄位的資料類型。 因此,您建立的 cccardnumber 正規表示式強化會顯示為可據以過濾文件的資料類型值。 如需建立資料類型的相關資訊,請參閱 新增資料類型。

正規表示式限制

您可以為每個服務實例定義的正規表示式數目取決於 Discovery 方案類型。

正規表示式計劃詳細資料
方案 每個服務實例的正規表示式
Cloud Pak for Data 無限制
進階 100
企業 100
加號 (包括試用) 20