Kiểm tra Regex API
Chạy biểu thức chính quy JavaScript trên văn bản: mọi kết quả khớp kèm vị trí, nhóm đánh số và nhóm có tên, thay thế và tách chuỗi, có chặn mẫu chạy quá lâu.
API regex chạy một biểu thức chính quy (cú pháp JavaScript / ECMAScript như trong trình duyệt và Node.js) trên văn bản tối đa 100.000 ký tự. action=match (mặc định) trả về mọi kết quả khớp kèm vị trí bắt đầu, kết thúc và giá trị, vị trí của từng nhóm đánh số và nhóm có tên; test trả về true / false, replace thay thế với $1, $<tên> và $&, còn split tách chuỗi.
Các cờ thông dụng g i m s u v y (và d, dùng nội bộ để lấy vị trí nhóm). Không có g, match chỉ trả về kết quả đầu tiên. Mẫu không hợp lệ trả về lỗi 400 kèm thông báo của engine, nên API cũng dùng được để kiểm tra mẫu do người dùng nhập.
Các mẫu có lượng từ lồng nhau như (a+)+ hay (\w*\s?)*, vốn có thể chạy mất thời gian luỹ thừa với một số đầu vào, bị từ chối với mã unsafe_pattern. Kết quả giới hạn 1.000 lần khớp (limit, mặc định 100); count vẫn cho biết tổng số.
Tham số
| Tên | Vị trí | Kiểu | Bắt buộc | Mặc định | |
|---|---|---|---|---|---|
pattern | body|query | string | có | Biểu thức chính quy, không kèm dấu /. | |
text | body|query | string | không | Văn bản cần tìm (tối đa 100.000 ký tự). | |
flags | body|query | string | không | Các cờ, ví dụ gi. | |
action | body|query | string | không | match | match, test, replace hoặc split. |
replacement | body|query | string | không | Chuỗi thay thế cho replace ($1, $<tên>, $&). | |
limit | body|query | number | không | 100 | Số kết quả / phần tối đa trả về (1–1000). |
Ví dụ
curl -X POST "https://apibox.io.vn/v1/regex" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"pattern":"(?<user>[\\w.]+)@([\\w.]+)","flags":"g","text":"a@x.com, b.c@y.vn"}'const res = await fetch('https://apibox.io.vn/v1/regex', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"pattern": "(?<user>[\\w.]+)@([\\w.]+)",
"flags": "g",
"text": "a@x.com, b.c@y.vn"
}),
});
const data = await res.json();
console.log(data);import requests
res = requests.post(
"https://apibox.io.vn/v1/regex",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"pattern": "(?<user>[\\w.]+)@([\\w.]+)", "flags": "g", "text": "a@x.com, b.c@y.vn"},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/regex');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"pattern":"(?<user>[\\\\w.]+)@([\\\\w.]+)","flags":"g","text":"a@x.com, b.c@y.vn"}',
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));Kết quả trả về
{
"pattern": "(?<user>[\\w.]+)@([\\w.]+)",
"flags": "g",
"action": "match",
"group_count": 2,
"group_names": [
"user"
],
"global": true,
"count": 2,
"truncated": false,
"matches": [
{
"match": "a@x.com",
"index": 0,
"end": 7,
"groups": [
{
"index": 1,
"value": "a",
"start": 0,
"end": 1
},
{
"index": 2,
"value": "x.com",
"start": 2,
"end": 7
}
],
"named": {
"user": "a"
}
},
{
"match": "b.c@y.vn",
"index": 9,
"end": 17,
"groups": [
{
"index": 1,
"value": "b.c",
"start": 9,
"end": 12
},
{
"index": 2,
"value": "y.vn",
"start": 13,
"end": 17
}
],
"named": {
"user": "b.c"
}
}
]
}
Ứng dụng
- Trang thử regex, công cụ dạy học
- Kiểm tra mẫu regex người dùng nhập trước khi lưu
- Trích xuất dữ liệu từ log, văn bản trong các luồng tự động hoá
- Tìm và thay thế hàng loạt từ script bất kỳ ngôn ngữ nào
Hỏi đáp
Dùng cú pháp regex nào?
ECMAScript (V8), giống JavaScript trong trình duyệt và Node.js. Hỗ trợ lookbehind, nhóm có tên, Unicode property (\p{L} với cờ u) và cờ v.
Vì sao mẫu của tôi bị coi là không an toàn?
Mẫu có một nhóm được lặp mà bên trong lại có lượng từ, nguyên nhân kinh điển của backtracking bùng nổ. Hãy viết lại (ví dụ (a+)+ → a+).
Tham chiếu nhóm trong chuỗi thay thế thế nào?
$1, $2… cho nhóm đánh số, $<tên> cho nhóm có tên, $& cho cả chuỗi khớp và $$ cho ký tự $.
API liên quan
Tạo UUID
Sinh tối đa 1.000 UUID v4, UUID v7 theo thời gian, ULID, Nano ID hoặc mã hex ngẫu nhiên mỗi request. Ngẫu nhiên an toàn, hỗ trợ chữ in hoa.
⏱Phân tích biểu thức cron
Kiểm tra biểu thức cron và xem các lần chạy tiếp theo theo múi giờ bất kỳ, kèm mô tả dễ hiểu. Hỗ trợ cú pháp cron 5, 6 và 7 trường.
🕒Giờ & múi giờ
Lấy giờ hiện tại ở mọi múi giờ, đổi giữa các múi giờ và Unix timestamp (giây hoặc mili giây), kèm độ lệch UTC và thứ trong tuần cho tối đa 30 múi giờ.