1. Trang chủ
  2. » Thể loại khác

php regular expression

6 132 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 421,62 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Sử dụng Regular Expression, bạn có thể tìm kiếm một chuỗi cụ thể bên trong một chuỗi khác, bạn có thể thay thế một chuỗi bởi chuỗi khác và bạn có thể phân chia một chuỗi thành các chuỗi

Trang 1

Regular Expression trong PHP

Regular Expression không gì khác ngoài một dãy hoặc một pattern của các ký tự Chúng cung cấp

cơ sở cho tính năng so khớp mẫu

Sử dụng Regular Expression, bạn có thể tìm kiếm một chuỗi cụ thể bên trong một chuỗi khác, bạn

có thể thay thế một chuỗi bởi chuỗi khác và bạn có thể phân chia một chuỗi thành các chuỗi con PHP cung cấp nhiều tính năng cụ thể cho hai tập hợp Regular Expression, mỗi tính năng tương ứng với một kiểu Regular Expression cụ thể Bạn có thể sử dụng bất kỳ kiểu nào dựa trên sở thích của bạn

 POSIX Regular Expression

 PERL Style Regular Expression

POSIX Regular Expression trong PHP

Cấu trúc của một POSIX regular expression là không giống với cấu trúc của một biểu thức số học đặc trưng: các phần tử đa dạng (các toán tử) được kết hợp để cấu thành một expression phức tạp hơn

Regular Expression đơn giản nhất là một Regular Expression mà so khớp với một ký tự đơn, ví dụ

g, bên trong một chuỗi như g, haggle hoặc bag

Dưới đây là phần giải thích cho một số khái niệm đang được sử dụng trong POSIX regular expression Sau đó, chúng tôi sẽ giới thiệu cho bạn về Regular Expression liên quan tới các hàm

Các dấu ngoặc vuông

Các dấu ngoặc vuông ([]) có ý nghĩa đặc biệt khi được sử dụng trong ngữ cảnh của các Regular Expression Chúng được sử dụng để tìm một dãy ký tự

Expression Miêu tả

[0-9] Nó so khớp với bất kỳ ký số thập phân nào từ 0 tới 9

Trang 2

[A-Z] Nó so khớp với bất kỳ ký tự chữ hoa từ A tới Z

[a-Z] Nó so khớp với bất kỳ ký tự từ chữ thường a tới chữ hoa Z

Các dãy được chỉ ở trên là dãy chung; bạn cũng có thể sử dụng dãy [0-3] để so khớp với bất kỳ ký

số từ 0 tới 3, hoặc dãy [b-v] để so khớp với bất kỳ ký tự chữ thường nào từ b tới v

Quantifier trong PHP

Tần suất và vị trí của dãy ký tự hoặc một ký tự đơn được bao trong dấu ngoặc vuông có thể được diễn tả bởi một ký tự đặc biệt Mỗi ký tự đặc biệt có một ý nghĩa cụ thể Các +, *, ?, {int range}, và

$ theo sau một dãy ký tự

Expression Miêu tả

p+ Nó so khớp với bất kỳ chuỗi nào chứa ít nhất một p

p* Nó so khớp với bất kỳ chuỗi nào chứa ít nhất một p

p? Nó so khớp với bất kỳ chuỗi nào chứa 0 hoặc nhiều p Đây là sự thay thế cho

việc sử dụng p*

p{N} Nó so khớp với bất kỳ chuỗi nào chứa một dãy gồm N p

p{2,3} Nó so khớp với bất kỳ chuỗi nào chứa 2 hoặc 3 p

p{2, } Nó so khớp với bất kỳ chuỗi nào chứa ít nhất 2 p

p$ Nó so khớp với bất kỳ chuỗi nào với p ở vị trí cuối của nó

^p Nó so khớp với bất kỳ chuỗi nào với p ở vị trí đầu của nó

Trang 3

Ví dụ

Dưới đây là các ví dụ giúp bạn hiểu rõ hơn về các khái niệm so khớp các ký tự:

Expression Miêu tả

[^a-zA-Z] Nó so khớp với bất kỳ chuỗi nào không chứa bất kỳ ký tự nào từ a tới z và từ A

tới Z

p.p Nó so khớp với bất kỳ chuỗi nào chứa p, được theo sau bởi bất kỳ ký tự nào,

trong trường hợp này là p

^.{2}$ Nó so khớp với bất kỳ chuỗi nào chứa chính xác 2 ký tự

<b>(.*)</b> Nó so khớp với bất kỳ chuỗi nào được bao bên trong <b> và </b>

p(hp)* Nó so khớp với bất kỳ chuỗi nào chứa một p được theo sau bởi 0 hoặc nhiều

sự thể hiện của dãy php

Dãy ký tự được định nghĩa trước trong PHP

Giúp bạn tiện lợi hơn trong khi lập trình, một số dãy ký tự được định nghĩa trước, mà còn được biết đến như là các lớp Character, là có sẵn cho bạn Các lớp Character xác định một dãy toàn bộ các

ký tự, ví dụ: bộ chữ cái hoặc một tập hợp integer

Expression Miêu tả

[[:alpha:]] Nó so khớp với bất kỳ chuỗi nào chứa các ký tự chữ cái aA tới zZ

[[:digit:]] Nó so khớp với bất kỳ chuỗi nào chứa các ký số từ 0 tới 9

[[:alnum:]] Nó so khớp với bất kỳ chuỗi nào chứa các ký tự chữ-số từ aA tới zZ và từ 0 tới

9

Trang 4

[[:space:]] Nó so khớp với bất kỳ chuỗi nào chứa một space

Hàm tích hợp Regexp POSIX trong PHP

Hiện tại, PHP cung cấp 7 hàm để tìm kiếm các chuỗi bởi sử dụng POSIX regular expression Dưới đây là bảng liệt kê các hàm này

Hàm ereg()

trong PHP

Hàm ereg() tìm kiếm một chuỗi được xác định bởi string cho một chuỗi được xác định bởi pattern, trả về true nếu pattern được tìm thấy, nếu không

là false

Hàm

ereg_replace()

trong PHP

Hàm ereg_replace() tìm kiếm chuỗi được xác định bởi pattern và thay thế pattern này với chuỗi thay thế nếu tìm thấy

Hàm eregi()

trong PHP

Hàm eregi() tìm một chuỗi được xác định bởi pattern cho một chuỗi được xác định bởi string Việc tìm kiếm là không phân biệt kiểu chữ

Hàm

eregi_replace()

trong PHP

Hàm eregi_replace() hoạt đông khá giống hàm ereg_replace(), ngoại trừ việc tìm kiếm pattern trong chuỗi là không phân biệt kiểu chữ

Hàm split()

trong PHP

Hàm split() phân chia một chuỗi thành các phần tử đa dạng, giới hạn của mỗi phần tử dựa trên sự xuất hiện của pattern trong chuỗi

Hàm spliti()

trong PHP

Hàm spliti() hoạt động khá giống hàm split(), ngoại trừ rằng nó là không phân biệt kiểu chữ

Hàm

sql_regcase()

trong PHP

Hàm sql_regcase() có thể được xem như là một hàm tiện ích, biến đổi mỗi

ký tự trong chuỗi tham số đầu vào vào trong một expression được bao bởi các dấu ngoặc vuông chứa hai ký tự

Trang 5

PERL-style Regular Expression trong PHP

PERL-style regular expression là tương tự như dạng POSIX Cú pháp POSIX hầu như có thể được

sử dụng cho các hàm PERL-style regular expression Sự thực là, bạn có thể sử dụng bất kỳ quantifier đã được giới thiệu ở trên

Dưới đây, chúng tôi giải thích một số khái niệm được sử dụng trong PERL regular expression Sau

đó sẽ là các hàm liên quan tới kiểu regular expression này

Ký tự meta trong PHP

Về cơ bản, một ký tự meta là một ký tự chữ cái được đặt trước bởi một dấu chéo ngược để tạo thành một tổ hợp có ý nghĩa đặc biệt

Ví dụ, bạn có thể tim kiếm các tổng lượng tiền lớn bởi sử dụng ký tự meta là '\d':/([\d]+)000/, ở đây

\d tìm kiếm bất kỳ chuỗi ký tự số nào

Dưới đây là danh sách các ký tự meta có thể được sử dụng trong PERL-style regular expression

a single character

\s a whitespace character (space, tab, newline)

\S non-whitespace character

\d a digit (0-9)

\D a non-digit

\w a word character (a-z, A-Z, 0-9, _)

\W a non-word character

[aeiou] matches a single character in the given set

[^aeiou] matches a single character outside the given set

(foo|bar|baz) matches any of the alternatives specified

Modifier

Một số modifier là có sẵn giúp bạn làm việc với Regexp dễ dàng hơn, như phân biệt kiểu chữ, tìm kiếm trong nhiều dòng, …

Modifier Description

Trang 6

string boundary

Hàm tích hợp với Regexp PERL trong PHP

PHP cung cấp các hàm sau để tìm kiếm các chuỗi sử dụng PERL regular expression

Hàm

preg_match()

trong PHP

Hàm preg_match() tìm kiếm chuỗi cho pattern, trả về true nếu pattern tồn tại, nếu không là false

Hàm

preg_match_all()

trong PHP

Hàm preg_match_all() so khớp tất cả sự xuất hiện của pattern trong chuỗi

Hàm

preg_replace()

trong PHP

Hàm preg_replace() hoạt động giống như ereg_replace(), ngoại trừ việc regular expression có thể được sử dụng trong pattern và các tham số đầu vào thay thế

Hàm preg_split()

trong PHP

Hàm preg_split() hoạt động giống hàm split(), ngoại trừ việc regular expression được chấp nhận như là các tham số đầu vào cho pattern

Hàm preg_grep()

trong PHP

Hàm preg_grep() tìm kiếm tất cả phần tử của input_array, trả về tất cả phần tử mà so khớp với regexp pattern

Hàm preg_

quote() trong

PHP

Các ký tự trích dẫn

Ngày đăng: 02/12/2017, 20:48

TỪ KHÓA LIÊN QUAN

w