文字與日常工具·文字工具包
文字還是正規表示式?為什麼搜尋字詞中的一個點可以改變每個結果
· 為什麼它很重要
尋找和替換 正規表示式 文字編輯
解釋哪些字元在正規表示式中具有意義,當 'a.b' 或 'v1.2 (beta)' 被視為模式時會出現什麼問題,以及為什麼轉義所有內容的文字模式應該是預設值。
搜尋「v1.2」並符合「v102」-正規表示式優先工具如何悄悄地將標點符號變成通配符
在發行說明中更改 `v1.2` 的支援代理可能會合理地期望這四個字元來識別一個版本標籤。但是,啟用正規表示式後,點表示除換行符之外的任何字元。因此,此模式可以匹配 `v102`、`v1-2` 或 `v1x2`,「全部替換」可以更改從未屬於所請求版本的條目。
此失敗很安靜,因為模式有效。沒有錯誤訊息來區分故意的通配符和從檔案名稱複製的標點符號。第一個警告可能是意外的大量替換計數。當任務是準確地替換已知文字時,標點符號應該是資料,而不是對搜尋引擎的指令。
元字元 — 點、方括號、圓括號、加號、星號、問號、垂直線、插入符號、美元符號和反斜杠,以及各自的作用
在 JavaScript 正規表示式模式下,點是通配符;方括號定義字元類別;括號建立一個群組;另外,星號和問號控制重複;管道提供了替代方案。在此工具中,插入符號和美元符號將模式錨定到整個文字的開頭或結尾,因為未啟用多行模式。
反斜線改變後面字元的讀取方式,大括號可以表示重複計數。這些符號僅在正規表示式語法特殊對待它們的位置上才重要,因此記住列表不如確定工作需要哪種模式可靠。如果您要符合提供的標籤、路徑片段或檔案名,請按字面意思開始。
JavaScript 正規表示式模式中重要的元字符
文字模式使搜尋意味著鍵入的內容。 ToolAcre 在編譯搜尋之前轉義正規表示式元字符,因此 `v1.2 (beta)` 匹配點、空格和括號本身。它不會將短語轉換為通配符後跟捕獲組,並它仍然會找到文字中的每個確切出現位置。
這種轉義只發生在搜尋端。替換欄位仍然遵循 JavaScript 替換字串規則,其中 `$&` 插入匹配的文字,`$$` 產生一個美元符號。因此,文字搜尋是識別文字的安全性預設設置,但在選擇全部替換之前,包含美元符號的替換仍然值得仔細審查。
正規表示式模式-當你需要權力時,以及如何自己轉義單一字符
正規表示式模式非常有用。模式可以針對一系列數字、可選標點符號或替代項,而無需列出每個來源拼字。只有當這種可變性是有意為之時才打開正則表達式,然後在必須保留其普通含義時使用反斜杠轉義特殊字符,例如 `.` 表示點。
此工具使用 JavaScript 正規表示式語法編譯模式並始終在全域應用它。清除區分大小寫會添加不區分大小寫的匹配,但不提供多行、全點、黏性和 unicode 標誌。在不更改文字的情況下報告無效語法。有效但過於廣泛的模式仍然執行,因此編譯成功並不能證明安全匹配集。
工作範例 - 在文字模式下取代發行說明中的“config.yml(舊)”,然後在正規表示式模式下嘗試相同的操作以查看差異
考慮包含 `Load config.yml (old)`、`Archive configXyml old` 和 `Keep config.yml (new)` 的發行說明。關閉正規表示式後,搜尋 `config.yml (old)` 並將其替換為 `config.yml (legacy)`。正是第一個短語發生了變化,因為在編譯模式之前點和括號被轉義了。
開啟正規表示式並提交相同的未轉義搜尋。點可以消耗另一個字符,而括號組 `old` 而不是匹配文字括號,因此預期的行不再與所寫的匹配。正規表示式等價項需要 `config.yml (old)`。文字版本更短、更清晰,並更符合該精確文字任務。
常見錯誤 - 搜尋框中的尾隨空格、混淆整個單字和文字以及忘記替換計數檢查
尾隨空格很容易被忽視,因為搜尋欄位賦予它們很少的視覺重量,但文字模式保留了它們。搜尋 `beta ` 將不會符合行末尾的 `beta`。當明顯可見的術語報告零替換時,請檢查欄位邊界,並避免僅為了將複製的文字與周圍的散文分開而添加空格。
整個單字不是文字的別稱。它將編譯後的搜尋包裝在單字邊界中,這裡的單字邊界是基於 ASCII 的,並可能會因標點符號或重音術語而失敗。每次執行後還要檢查替換計數,並在令人驚訝時使用“撤消”。計數是有關範圍的證據,而不是裝飾性的成功消息。
常見錯誤:空格、整個單字邊界和替換語法
本頁並非嘗試提供正規表示式標誌的完整指南。 ToolAcre 使用全域匹配和可選的不區分大小寫的匹配,而錨點仍然引用完整文字而不是每一行。從具有內聯標誌、POSIX 類別或不同語法的引擎複製的模式可能無法編譯,或者可能在瀏覽器中意味著其他內容。
支援擷取群組,因此大綱需要修正,而不是說它們在工具之外。在正規表示式模式下,可以使用替換中的 `$1`、`$2` 及後面的數字來引用群組。此功能獨立於文字搜尋和有限的標誌控制;僅當重組匹配文字是實際目標時才使用它。
此處的標誌受到限制,而替換中支援捕獲組
實用規則很簡單:在取代已知版本、檔案名稱、產品標籤或句子片段時,將 Regex 關閉。文字模式會自動轉義特殊字符,保留標識目標的標點符號。只有當您可以說明模式應接受哪些變體以及精確搜尋不足的原因時,才啟用正規表示式。
在提交編輯後的發行說明之前,將報告的計數與您預期的更改數量進行比較並檢查結果。 ToolAcre 保持無效模式不變,並為超出範圍的有效模式提供撤銷功能。這些保護措施有所幫助,但為文字工作選擇文字模式會阻止廣泛匹配發生。