RegExMatch tách chuỗi trong AutohotKey

Hướng dẫn RegExMatch tách chuỗi trong AutohotKey

1. RegExMatch là gì?

RegExMatch trong AutoHotkey v2 là hàm dùng để tìm kiếm chuỗi theo mẫu (Regular Expression – Regex).

Chức năng: Tìm một mẫu ký tự trong chuỗi

2. Cú pháp RegExMatch

RegExMatch(Haystack, NeedleRegEx, &Match)

| Thành phần  | Ý nghĩa           |
| ----------------  | -----------------   |
| Haystack       | Chuỗi cần tìm     |
| NeedleRegEx | Mẫu regex cần tìm |
| &Match      | Biến nhận kết quả |

3. Ví dụ đơn giản về RegExMatch

text := "Tuoi cua toi la 25"
RegExMatch(text, "\d+", &m)
MsgBox m[0]

Kết quả: 25

Giải thích:

| Regex | Ý nghĩa      |
| ----- | ------------ |
| `\d`  | chữ số       |
| `+`   | 1 hoặc nhiều |

4. Ví dụ lấy nhóm dữ liệu

text := "Name: Thanh"
RegExMatch(text, "Name:\s*(\w+)", &m)
MsgBox m[1]

Kết quả

Thanh

| Ký hiệu | Ý nghĩa              |
| ------- | -------------------- |
| `\s`    | khoảng trắng         |
| `*`     | 0 hoặc nhiều         |
| `()`    | nhóm dữ liệu cần lấy |
| `\w+`   | chữ                  |

5. Ví dụ với JSON với Autohotkey

json := '{"count":2363,"name":"thanh","age":55}'
RegExMatch(json, '"name":"([^"]+)"', &m)
MsgBox m[1]

Ý nghĩa

| Phần       | Ý nghĩa             |
| ---------- | ------------------- |
| `"name":"` | tìm chữ name        |
| `(`        | bắt đầu nhóm        |
| `[^"]`     | ký tự khác dấu `" ` |
| `+`        | 1 hoặc nhiều        |
| `)`        | kết thúc nhóm       |

6. Kết quả trả về

| Biến   | Giá trị            |
| ------ | ------------------ |
| `m[0]` | toàn bộ chuỗi khớp |
| `m[1]` | nhóm thứ 1         |
| `m[2]` | nhóm thứ 2         |
 

Hướng dẫn RegExMatch tách chuỗi trong AutohotKey