Basic

HTTP Requests

Basic

Top  Previous  Next

- Cấu trúc của StringRegExp là:

StringRegExp($chuỗi, $bộ_máy_lọc_chuỗi, $giá_trị_trả_về)

 

·$giá_trị_trả_về: điền 1 khi chỉ lấy 1 kết quả mà regexp tìm được đầu tiên, điền 3 để lấy nhiều kết quả tương tự nếu có.

 

·$bộ_máy_lọc_chuỗi: đừng quá đặt nặng việc viết sao cho đẹp. Chỉ cần nhớ vài điều sau:

 

a. Dùng tổ hợp (.*?) để tách lấy chuỗi cần, chả cần biết ba cái \w, \d... gì cho mệt óc.

 

b. Trước và sau dấu ngoặc đơn của (.*?) cần có 2 "móc neo" đáng tin cậy. Móc neo đầu là nơi bắt đầu lấy chuỗi, móc neo cuối là nơi kết thúc lấy chuỗi. Nếu muốn lấy chuỗi bắt đầu từ móc neo đầu cho đến hết hàng tức là không xác định móc neo cuối (khi chuỗi gồm nhiều hàng) thì bỏ dấu ? trong cụm (.*?) đi, tức là chỉ (.*) thôi.

 

c. Ngoài các ký tự 0-9, A-Z, a-z thì các ký tự khác thêm dấu \ ở trước, riêng ký tự khoảng trắng ta không để là \ mà là \s, tất nhiên trừ dấu ngoặc đơn để xác định chuỗi cần tìm là không thêm \. (Lưu ý: thực ra chỉ các ký tự sau là cần thêm \ là: \ . ^ $ | [ ( { * + ? # )

 

d. Đầu $bộ_máy_lọc_chuỗi ta dùng (?i) để không phân biệt hoa thường.

 

·Hàm StringRegExp trả về Mảng khi $giá_trị_trả_về > 0, trả về True/False khi $giá_trị_trả_về = 0

 

 

- Ví dụ :

Ta có chuỗi: $string = '1234[lMG]http://abc.xyz[/lMG]4321[lMG]http://123.xyz[/lMG]'

Hãy lọc ra đường link http://abc.xyz trong chuỗi.

 

 

Móc neo đầu

Chuỗi cần lấy

Móc neo cuối

Chuỗi ban đầu

1234[lMG]

http://abc.xyz

[/lMG]4321[lMG]http://123.xyz[/lMG]

Thay chuỗi cần lấy bằng (.*?)

1234[lMG]

(.*?)

[/lMG]4321[lMG]http://123.xyz[/lMG]

Loại bỏ phần thừa của móc neo

[lMG]

(.*?)

[/lMG]

Thêm \ các ký tự khác 0-9a-z

\[IMG\]

(.*?)

\[\/lMG\]

 

 

#include <_HttpRequest.au3>

$string = '1234[lMG]http://abc.xyz[/lMG]4321[lMG]http://123.xyz[/lMG]'

$aRet = StringRegExp($string, '\[lMG\](.*?)\[\/lMG\]', 1)

_ArrayDisplay($aRet)

 

Lưu ý: Nếu $giá_trị_trả_về để là 3 thì sẽ ra 2 kết quả là http://abc.xyzhttp://123.xyz vì thằng http://123.xyz nó cũng có cấu trúc tách giống như thằng kia.