工具用的順手嗎?
你的回饋能幫助我們做得更好
線上測試Java正規表示式,實時驗證匹配結果,提取捕獲組,除錯開發更高效。
CASE_INSENSITIVE / i
MULTILINE / m
DOTALL / s
UNICODE_CASE
UNICODE_CHARACTER_CLASS
COMMENTS / x
LITERAL
請輸入正規表示式和待匹配文字
概覽
了解工具能解決的問題、計算或處理邏輯,以及資料邊界。
輸入正規表示式與待測文字後,可查看符合項目、高亮位置、匹配數量、字元位置、長度,以及編號和命名捕獲群組;切換至替換模式,也能預覽替換第一項或全部項目的結果。它適合快速檢查常見模式與樣本,實際執行採用瀏覽器的 JavaScript RegExp,並非在 JVM 中呼叫 Java 的 Pattern 與 Matcher。
因此「Java」指向使用情境,不代表每種 Java 語法都能原樣執行。兩種引擎在部分語法、Unicode 分類、旗標和替換字串規則上有差別。若結果將放進正式 Java 程式,最終仍須以專案使用的 JDK 版本重跑測試。
正規表示式以模式描述文字規則。圓括號建立捕獲群組,完整匹配是整個模式命中的片段,群組則是其中被括號分出的內容。例如 ([A-Z]+)-([0-9]+) 套用在 A-204、B-9,可逐項查看完整編號,並分別檢查字母前綴與數字群組。結果也會列出位置與長度,方便核對模式是否從預期字元開始。
匹配模式會列出樣本中的所有命中。替換模式會顯示替換後文字;開啟「全部替換」時處理所有命中,關閉時只替換第一個。捕獲群組可用於替換字串,但命名群組的替換語法尤其可能因引擎而異,請不要只根據預覽判定 JVM 結果。
工具欄位接收的是正規表示式模式,不是 Java 程式碼中的字串常值。測試數字時,欄位可輸入 \d+;若要在 Java 原始碼以字串表示相同模式,通常要寫成 "\d+",因為 Java 編譯器也會先處理字串中的反斜線。從程式碼複製時,先分辨目前拿到的是模式本身,還是已經過 Java 字串跳脫的內容。
工具提供忽略大小寫、多行、點號跨行、Unicode 大小寫、Unicode 字元類、註釋和字面量等選項。名稱相似不保證兩個引擎的精確行為相同;這些控制項是用來觀察一般模式的效果,不構成 Java Pattern 相容性認證。Oracle 的 Pattern API 文件列出 JDK 所支援的語法和旗標,可用來核對目標環境。
指南
依步驟完成操作,並透過範例核對輸入與結果。
在模式欄輸入正規表示式,在待匹配文字區放入短而具代表性的樣本。可先測 ([A-Z]+)-([0-9]+) 搭配 A-204、B-9,觀察分組邊界是否符合預期。欄位不需加 Java 字串引號,也不需額外套上斜線分隔符。
匹配模式用來檢查所有命中及捕獲內容。若要改寫文字,切換到替換模式並輸入替換字串,再確認「全部替換」是否符合任務需要。先用少量樣本查看預覽,再複製結果。
按需求切換大小寫、多行、點號跨行等選項。結果區可檢視高亮、命中數、每筆位置和長度、編號群組與命名群組;出現編譯錯誤時,先修正語法,再逐一重試選項。
把最終模式放進目標 JDK 的測試程式或測試案例,並用相同輸入、旗標與替換規則比對。確認通過後,才將它用於實際資料處理。
「多行」主要影響 ^ 和 $ 如何看待每行的邊界;「點號跨行」則控制 . 是否可匹配換行。它們處理的是不同問題,可分開切換並用包含換行的樣本比較。
情境
查看這項工具在不同工作與生活流程中的用法。
開發者可用少量代表性日誌測試編號、狀態或時間片段的模式,並查看捕獲群組有沒有把欄位拆對,再回到 Java 測試案例確認。
維護匯入或清理流程的人員可先放入不含敏感資訊的樣本,確認替換第一項或全部項目後的文字,再以實際 JVM 規則驗證。
學習者可改變多行選項,觀察錨點位置和群組結果如何變化。這有助理解匹配過程,但 Java 專屬語法仍應查閱 JDK 文件並實測。
問答
集中解答常見疑問與容易混淆的問題。
\\d+ 為什麼結果不同?程式碼中的雙反斜線用來讓 Java 字串保留一個反斜線;貼入本頁時,通常要先還原成正規式本身的 \d+。本頁不會自動解析 Java 字串常值。
不代表。本頁以 JavaScript RegExp 執行,不能保證 Java Pattern 的專有語法、旗標或替換規則會相同。對目標 JDK 執行測試才是判斷 Java 程式行為的依據。
多行選項影響 ^、$ 的行首行尾判斷;點號跨行選項影響 . 是否匹配換行。依需求分別切換,並在樣本中加入換行驗證。
切到替換模式並關閉「全部替換」,預覽會只處理第一個命中;開啟時才會處理全部命中。替換語法若含命名群組,應再以目標 JDK 實測。
須知
使用前了解適用範圍、結果限制與必要提醒。
推薦
查找相關工具、專題與可用的 API 能力。