CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 72

72
Chương 2: Thao tác dữ liệu

Địa chỉ e-mail

[\w-]+

nghĩa là chứa một

hoặc nhiều ký tự word

hoặc dấu gạch ngang, ví dụ

[email protected]

^[\w-]+@([\w- ]

+\.)+[\w-]+$

HTTP hoặc HTTPS

URL

Dữ liệu là một URL dựa-trên-HTTP

hay dựa-trên-HTTPS, ví dụ

http://www.microsoft.com

^https?://([\w- ]

+\.)+[\w-]+(/[\w- ./ ?

%=]*)?$

Một khi đã biết cú pháp của biểu thức chính quy, bạn tạo một đối tượng

System.Text.RegularExpression.Regex

bằng cách truyền cho phương thức khởi dựng của nó

chuỗi chứa biểu thức chính quy. Sau đó, gọi phương thức

IsMatch

của đối tượng

Regex

truyền chuỗi cần kiểm tra, phương thức này trả về một giá trị luận lý cho biết chuỗi có hợp lệ
không. Cú pháp của biểu thức chính quy sẽ chỉ định

Regex

so trùng toàn bộ chuỗi hay chỉ so

trùng một phần của chuỗi (xem

^

,

\A

,

$

, và

\z

trong bảng 2.2)

Phương thức

ValidateInput

dưới đây minh họa cách kiểm tra chuỗi nhập bằng biểu thức

chính quy:

public static bool ValidateInput(string regex, string input) {

// Tạo đối tượng Regex dựa trên biểu thức chính quy.

Regex r = new Regex(regex);

// Kiểm tra dữ liệu nhập có trùng với biểu thức chính quy hay không.

return r.IsMatch(input);

}

Bạn có thể sử dụng đối tượng

Regex

để kiểm tra nhiều chuỗi, nhưng không thể thay đổi biểu

thức chính quy được gắn cho nó; bạn phải tạo một đối tượng

Regex

mới tương ứng với một

cấu trúc mới. Phương thức

ValidateInput

ở trên tạo ra một đối tượng

Regex

mới mỗi lần được

gọi, thay vào đó bạn có thể sử dụng phương thức tĩnh nạp chồng

IsMatch

.

public static bool ValidateInput(string regex, string input) {

// Kiểm tra dữ liệu nhập có trùng với biểu thức chính quy hay không.

return Regex.IsMatch(input, regex);

}

6.

6.

S d ng bi u th c chính quy đã đ

c biên d ch

ử ụ

ượ

S d ng bi u th c chính quy đã đ

c biên d ch

ử ụ

ượ

Bạn cần giảm thiểu các tác động lên hiệu năng của ứng dụng khi các biểu thức
chính quy phức tạp được sử dụng thường xuyên.

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.