跳到工具區
文字

正規表示式線上測試

使用目前瀏覽器的 JavaScript RegExp 測試比對,檢查捕獲群組、indices 與替換結果,並可設定 Worker 逾時。

Web Worker 僅在本機處理工具
輸入0 個字元
對照內容0 個字元
結果0 個字元
就緒

JavaScript RegExp 實測 · 明示引擎與 UTF-16 座標

一次比對,是範圍、群組與引擎狀態的共同結果。

正規表示式沒有跨語言通用的唯一語意。這裡依照目前瀏覽器的 ECMAScript RegExp 執行,並以 UTF-16 索引呈現 flags、比對範圍、捕獲群組與替換結果;結果不代表 PCRE、Python 或伺服器環境。

JS

ONLY

PATTERN/(?<proto>https?):\/\/(?<host>[^/:\s]+)(?::(?<port>\d+))?(?:\/[^?\s]*)?(?<query>\?[^\s]*)?/dguINPUTVisit https://example.com:8080/docs next.
0V
1i
2s
3i
4t
5·
6h
7t
8t
9p
10s
11:
12/
13/
14e
15x
16a
17m
18p
19l
20e
21.
22c
23o
24m
25:
268
270
288
290
30/
31d
32o
33c
34s
比對 1 · [6, 35)proto · [6, 11)host · [14, 25)port · [26, 30)

Flag 狀態機

Flags 會改變語意與迭代方式,不是裝飾。

d

Indices

讓完整比對與捕獲群組可回報 [start, end) 範圍

g

全域比對

從 lastIndex 開始持續尋找後續結果

i

忽略大小寫

依目前引擎的大小寫對應規則執行

m

多行模式

^ 與 $ 也會辨識每行的邊界

s

DotAll

. 可以比對換行等行終止字元

u

Unicode

以 Unicode 碼點解析模式,結果位置仍是 UTF-16 索引

v

Unicode sets

提供集合運算與字串屬性;不可與 u 併用

y

Sticky

必須剛好從 lastIndex 命中;本頁沒有另設起點

捕獲群組明細

未參與比對不等於命中空字串;群組範圍需要 d flag。

0 · 完整比對[6, 35)https://example.com:8080/docs已參與
1 · proto[6, 11)https已參與
2 · host[14, 25)example.com已參與
3 · port[26, 30)8080已參與
4 · query(選用)undefined未參與

原生替換 · First/All

First 會移除 g,All 會補上 g;y 仍會限制黏著比對。

ORIGINALVisit https://example.com:8080/docs next.
TEMPLATE$<proto>://$<host>
RESULTVisit https://example.com next.
$& · 完整比對$1 … $99 · 編號捕獲群組$<name> · 命名捕獲群組$$ · 字面上的 $$` / $' · 比對之前/之後的文字

回溯隔離 Worker

50–10,000 ms 只是頁面執行預算,不是 ReDoS 安全證明。

/^(a+)+$/aaaaaaaaaaaaaaaaaaaaaaaaaaaa!

每次執行都會建立可終止的 Worker;開始新任務時會終止舊 Worker。正數逾時值會夾在 50–10,000 ms,預設為 500 ms;0、負數或非數字目前不會建立逾時計時器。這個邊界只限制目前頁面的執行,不會分析模式複雜度,也不能證明在伺服器、其他引擎或攻擊輸入下沒有 ReDoS。

直接回答

什麼是 正規表示式線上測試?

用目前瀏覽器的 JavaScript RegExp 執行正規表示式線上測試,查看比對範圍、捕獲群組、indices 與原生替換結果,並以可終止 Worker 限制長時間執行。

它能做什麼?

  • 比對
  • 替換

如何使用 正規表示式線上測試

  1. 01

    選擇任務

    在工作區選擇比對和替換。

  2. 02

    提供輸入

    \b(?<word>[A-Za-z]+)\b。內容會留在瀏覽器端的處理流程中。

  3. 03

    檢查結果

    執行工具、檢查結果與診斷資訊;頁面提供複製或下載功能時,也能直接匯出。

常見問題

正規表示式線上測試是什麼?
用目前瀏覽器的 JavaScript RegExp 執行正規表示式線上測試,查看比對範圍、捕獲群組、indices 與原生替換結果,並以可終止 Worker 限制長時間執行。
正規表示式線上測試能做什麼?
正規表示式線上測試支援比對和替換,所有模式都能直接在目前頁面使用。
正規表示式線上測試會上傳我的資料嗎?
正規表示式線上測試會在瀏覽器中處理輸入內容。DevSexy 不會增加上傳、登入或伺服器處理步驟。
DevSexy 會在瀏覽器中處理工具輸入:不追蹤貼上的內容、不需帳號,也不會上傳。