# 正則

Published 2025-06-26

# 正則表達式配置的作用

在 Tavo 中,正則表達式用於自動化處理文字內容。具體來說,它可以幫助您:

  1. 識別特定的文字模式,比如去掉不需要的前綴,或者提取特定資訊。

  2. 修改替換文字內容,使得角色對話更加自然或符合設定。

  3. 清理多餘的字元或格式,使對話更加簡潔和符合標準。

正則表達式的主要應用是在文字處理自動替換方面,比如您可以自動去除使用者和角色對話中的冗餘資訊,或者統一格式。

# 正則表達式配置項詳解

# 1. 名稱

  • 作用:為這個規則起個名字,便於區分和管理。

  • 舉例

名稱:清理系統提示

這只是為了方便您識別它,例如您有多個規則時,名稱能幫助您更快找到需要的規則。

# 2. 正則表達式(Find Regex)

  • 作用:正則表達式是您要匹配的文字模式。它是用來搜尋文字中的特定模式,並告訴系統您要匹配哪些內容。

  • 舉例

正則表達式:^\[系統提示\]:(.+)$

這個正則表達式的意思是:匹配所有以[系統提示]:開頭的內容,捕獲[系統提示]:後面的所有文字。例如,[系統提示]:任務開始中的「任務開始」會被匹配到並提取出來。

  • ^:表示匹配行的開始

  • \[系統提示\]:匹配字面字元[系統提示][]在正則表達式中有特殊含義,需要用反斜線\轉義)。

  • (.+)$:表示匹配冒號後面的內容,並捕獲它。

# 3. 替換內容(Replace With)

  • 作用:這是您希望用來替換匹配到內容的文字。您可以用$1$2等來引用正則表達式捕獲的群組。

  • 舉例

替換內容:$1

這個意思是將正則表達式中第一個捕獲群組(即[系統提示]:後的內容)替換為新內容。所以,[系統提示]:任務開始就變成了任務開始

您還可以使用其他佔位符,如:

  • {{match}}:表示完整的匹配內容(整個「[系統提示]:任務開始」)。

  • $1:表示第一個捕獲群組(即「任務開始」)。

# 4. 替換前修剪(Trim Out)

  • 作用:在執行替換之前,移除匹配到的內容中的某些部分,通常用來去掉不需要的部分。

  • 舉例

修剪前:玩家說:

這個功能會移除所有匹配到的玩家說:,讓您處理的內容變得更乾淨。

# 5. 作用範圍

  • 作用:定義這個規則適用於哪些類型的訊息。

  • 具體包括:

    • 使用者訊息:適用於使用者發送的訊息。

    • 角色訊息:適用於角色發送的訊息。

    • 思維鏈:在AI的思考過程中,對思維鏈中的內容進行處理。

    • 世界書:適用於角色的背景、世界設定等內容的處理。

  • 舉例

如果您希望去除角色訊息中的多餘前綴,就選擇「角色訊息」作為作用範圍。

作用範圍:角色訊息

# 6. 執行時機

  • 作用:控制正則表達式規則在哪個時機生效,具體包括:

    • 顯示時:當訊息準備顯示給使用者時,執行正則表達式。

    • 發送時:訊息發送到系統時執行正則表達式。

    • 發送和顯示時:既在發送時也在顯示時執行正則表達式。

    • 接收時:接收到訊息時執行正則表達式。

    • 接收和改寫時:接收到訊息並修改內容時執行正則表達式。

  • 舉例

假設您想在訊息顯示之前去掉不需要的符號或多餘的部分,可以選擇「顯示時」:

執行時機:顯示時

這樣系統會在訊息呈現給使用者之前,先進行文字處理。

# 7. 替換參數

  • 作用:控制是否進行替換,以及如何處理替換內容。

  • 具體包括:

    • 不替換:不進行任何替換,原樣保留內容。

    • 原文替換:替換時保留原文格式。

    • 轉義替換:替換內容時會自動處理特殊字元(例如將反斜線等轉義字元進行適當轉義)。

  • 舉例

如果您選擇「原文替換」,那麼替換後的內容將保持原文格式,避免出現編碼錯誤等問題:

替換參數:原文替換

# 綜合示例

假設您有以下規則:

  • 使用者訊息中的「[系統提示]:」需要被去掉,只保留後面的內容。

  • 使用正則表達式:^\[系統提示\]:(.+)$

  • 替換內容:$1

  • 作用範圍:使用者訊息

  • 執行時機:顯示時

  • 替換參數:原文替換

配置完成後,使用者發送的訊息:

[系統提示]:任務開始

將被顯示為:

任務開始

# 總結

  • 正則表達式幫助您識別和修改文字的特定模式。

  • 替換內容決定了如何修改匹配到的文字。

  • 作用範圍執行時機幫助您決定在哪些場合、何時應用這些修改。

  • 替換參數控制替換時的具體行為。

透過正則表達式,您可以大大提高對話內容的管理和自動化處理,使得對話更加自然、符合預期。