2023年政策修订增补工作正在进行中,欢迎参与!
說明:管理員工具手冊/替換
跳至導覽
跳至搜尋
在萌娘百科,「替換文本」是管理員工具之一。管理員無需使用機械人或機器用戶用戶組就可以對全站文本進行替換並自動標記為機械人。
本頁面介紹的是管理員的替換工具及操作方式。
替換文本 (ReplaceText)
Replace Text擴展提供了一個特殊頁面Special:ReplaceText以便具有「⧼right-replacetext⧽(replacetext)」權限的用戶進行替換文本。
特殊頁面提供了一個表單供管理員填寫搜索和替換詳細信息:
- 搜索字符串和替換字符串
- 要搜索的命名空間
- 選擇是否替換文本在頁面內容、頁面標題或兩者中
- 頁面所屬的分類(選填)
- 頁面名稱的前綴(選填)
- 注意事項
- 替換文本默認一次只處理 250 項,可能需要多次執行替換;
- 替換將被提交至作業隊列中,以確保在用戶想要同時執行許多操作時系統不會超載,這意味着大量替換不會立即完成;
- 由於 PHP 表單輸入數量的限制,如果需要進行大量替換,建議篩選命名空間;
- 替換文本的編輯摘要為「文本替換 - 替換「XXX」為「YYY」」,無法更改;
- 當替換頁面標題時,無法覆蓋刪除已有的非重新導向頁面;
- 對JS/CSS內容模型的頁面進行替換會失效,請勿對模塊執行文本替換;
- 極其不建議對文件執行頁面名稱文本替換,可能會因未能正確移動媒體文件導致文件無法使用。
- 正則表達式
勾選「使用正則表達式」後,可以在搜索和替換字符串欄輸入正則表達式。允許的正則表達式集是 PHP 和 MySQL/PostgreSQL 正則表達式的一小部分,可參閱此處。
簡單示例如下:
- 示例一:
- 搜索字符串
a(.*)c
- 替換字符串
ac$1
- 這將查找包含字母「a」、字母「c」以及介於兩者之間的任何文本(由「.*」表示)的頁面。然後它會將中間文本放在「a」和「c」之後——替換字符串中的「$1」指的是括號內包含的搜索字符串的第一個元素(在這種情況下,只有一個)。
- 若後跟數字替換,您可以將$1值括在大括號中,形如${1}。
- 搜索字符串
- 示例二:
- 搜索字符串
hello([0-9]*)\.([0-9]*)
- 替換字符串
$1,$2
- 首先匹配「hello」;括號中的表達式用於搜索任何數字「0-9」,後面的星號查找前面元素的多個匹配項,用括號括起來可以將匹配完整的部分表達式定義為$1。」\」 表示它後面是一個真正的點。第二個括號內的表達式匹配並定義為$2。例如,這會將「hello222.555」替換為「222,555」,將「hello2.55」替換為「2,55」。
- 搜索字符串
- 示例三:
- 搜索字符串
(?i)iphone
- 替換字符串
iPhone
- 可使您的搜索不區分大小寫。示例會將iPhone/iphone/IPHONE等統一為iPhone的大小寫。其他模式請參見此處。
- 搜索字符串
批量正則編輯 (MassEditRegex)
MassEditRegex擴展提供了一個特殊頁面Special:MassEditRegex以便具有「⧼right-masseditregex⧽(masseditregex)」權限的用戶進行批量正則編輯。
特殊頁面提供了一個表單供管理員填寫搜索和替換詳細信息:
- 要編輯的頁面列表
- 頁面名稱(編輯這些頁面)
- 頁面名稱前綴(編輯頁面名稱的開頭有這個文字)
- 分類名稱(編輯在這些分類里的每個頁面)
- 反向連結(編輯連結至這些頁面的頁面)
- 搜索字符串和替換字符串
- 編輯摘要(默認為空)
- 注意事項
- 伺服器端執行替換是默認配置,因為它更快。但由於 PHP 對腳本執行時間的限制,編輯大量頁面會導致伺服器超時,此時可勾選「在瀏覽器中執行」以在客戶端完成替換。
- 當您提供的正則表達式無效時,它會警告您選擇替換的所有頁面均未找到。
- 當通過頁面名稱前綴進行檢索時,僅指定命名空間前綴會返回無效標題,這是已知問題。
- 正則表達式
搜索和替換字符串欄必須使用正則表達式。允許使用 PHP 正則表達式,細節參見此處。該擴展可使用任意複雜度的正則表達式進行文本替換,以下為簡單示例:
- 簡單示例一:
- 搜索字符串
/$/
- 替換字符串
[[Category:New]]
- 追加一些文本到頁面底端 - 例如為頁面添加分類。
- 搜索字符串
- 簡單示例二:
- 搜索字符串
/^(.)/
- 替換字符串
{{XXXTOP}}\n$1
- 添加一些文本到頁面頂部 - 例如為頁面添加TOP模板。
- 搜索字符串
|