DevToys Web Pro iconDevToys Web Pro部落格
為我們評分:
試用瀏覽器擴充功能:

正則表達式測試器

設定

模式

測試字串

  • 符合項目

    輸入模式以查看符合項目

    取代

    參考

    字元類別

    .除換行符號外的任何字元
    [abc]匹配 a、b 或 c
    [^abc]匹配除 a、b、c 以外的任何內容
    [a-z]字元範圍(a 到 z)
    \d數字(0-9)
    \D非數字
    \w單字字元 [a-zA-Z0-9_]
    \W非單字字元
    \s空白字元
    \S非空白字元

    錨點

    ^字串/行的開頭
    $字串/行的結尾
    \b單字邊界
    \B非單字邊界

    跳脫字元

    \t定位字元
    \n換行
    \r回車
    \0空字元
    \xhh十六進位字元(例如 \xFF)
    \uhhhhUnicode 字元

    群組與參照

    (abc)擷取群組
    (?:abc)非擷取群組
    (?<name>abc)具名擷取群組
    \1回溯參照至第 1 群組
    \k<name>回溯參照至具名群組

    前後查找

    (?=abc)正向前瞻
    (?!abc)負向前瞻
    (?<=abc)正向後顧
    (?<!abc)負向後顧

    量詞與交替

    a*0 次或以上(貪婪)
    a+1 次或以上(貪婪)
    a?0 或 1 次(可選)
    a{n}恰好 n 次
    a{n,}n 次或以上
    a{n,m}介於 n 到 m 次
    a*?0 次或以上(惰性)
    a+?1 次或以上(惰性)
    a|b匹配 a 或 b

    替換

    $1, $2已擷取的群組內容
    $&整個匹配
    $`匹配之前
    $'匹配之後
    $$字面上的 $ 字元
    技術細節

    RegEx 測試器的運作方式

    工具功能說明

    regex 測試器可讓你即時以範例文字測試正規表示式。它同時作為 regex 除錯器與 regex 驗證器,協助開發者建立、測試並精煉模式比對表達式。此測試器使用 JavaScript 的 RegExp 引擎(ECMAScript),因此語法可能與 PCRE、.NET 或 Java 的 regex 引擎不同。當你需要線上測試 regex 時,此工具會顯示所有匹配結果、擷取群組與取代結果。此工具支援 JavaScript regex 語法,包含 JavaScript regex 旗標(g、i、m、s、u):全域(g)、不分大小寫(i)、多行(m)、dotAll(s)與 unicode(u)。它會在測試字串中標示匹配內容、顯示擷取群組,並可執行尋找與取代操作,以預覽 regex 將如何轉換文字。

    常見的開發者使用情境

    開發者在建立驗證模式、解析日誌檔或從字串中擷取資料時會使用 regex 測試器。測試 regexp 模式有助於找出邊界情況、除錯複雜表達式,並理解不同旗標如何影響匹配行為。許多開發者使用 regex 測試器來驗證電子郵件地址、電話號碼、URL 或其他結構化資料格式。此工具在表單驗證、日誌分析或文字處理任務中非常有價值。Regex 測試器也有助於學習正規表示式,因為它會透過匹配迭代與群組擷取展示模式如何匹配文字。當以多行文字或特殊字元測試 regexp 時,此工具能幫助開發者清楚看到究竟匹配到什麼以及原因。

    資料格式、型別或變體

    Regex 測試器處理 JavaScript 正規表示式語法,其基於 Perl 風格 regex,但與其他 regex 引擎有些差異。此工具支援字元類別,例如用於數字的 \d、用於單字字元的 \w,以及用於空白字元的 \s。它支援錨點( ^$)、量詞(*+?)與交替(|)。多行旗標會影響 ^$ 的匹配方式,而 dotAll 旗標會讓 . 匹配換行字元。理解 regex 的換行行為對多行文字處理至關重要。例如,使用 /\d-\d-\d/ 這樣的模式測試電話號碼字串時,會清楚顯示哪些部分被匹配。Regex 的換行處理取決於旗標:模式 ^foo.*bar$ 只有在使用 dotAll 旗標(s)時才會匹配 "foo\nbar",因為預設情況下 . 不會匹配換行。處理 regex 換行模式時,可使用 \n 匹配字面換行,或使用 \r\n 匹配 Windows 行尾。

    常見陷阱與邊界情況

    常見錯誤之一是忘記 JavaScript regex 使用斜線作為分隔符,而不是引號。另一個問題是誤解全域旗標對匹配的影響:沒有它只會回傳第一個匹配,但有它則會找出所有匹配。Regex 的換行處理可能很棘手:. 字元預設不會匹配換行,除非使用 dotAll 旗標。使用 [^...] 進行字元類別否定也可能令人困惑,因為它會匹配任何不在該類別中的字元。貪婪與懶惰量詞( * vs *?)行為不同,可能導致意外結果。前瞻與後顧斷言( (?=...)(?&lt;=...))功能強大,但可能難以除錯。開發者應以各種輸入測試 regex 模式,包含空字串、特殊字元與 unicode 字元等邊界情況。

    何時使用此工具 vs 程式碼

    使用此 regex 測試器可快速開發模式、除錯複雜表達式或學習正規表示式語法。它非常適合在將 regex 模式實作到程式碼之前先行測試,尤其是在處理不熟悉的語法或複雜模式時。視覺化回饋有助於找出為何模式會(或不會)匹配到特定文字。對於正式環境程式碼,請使用整合於 IDE 或單元測試框架中的 regex 測試工具,讓模式可作為測試套件的一部分進行驗證。瀏覽器工具擅長互動式開發與學習,而以程式碼為基礎的解決方案則提供自動化、與 CI/CD 管線整合,以及針對大型資料集測試模式的能力。對於複雜應用程式,自動化 regex 測試可確保模式在不同輸入與邊界情況下都能正確運作。