Để khớp một chuỗi chính xác, thay vì một mẫu, hãy cân nhắc sử dụng hàm str_replace[] hoặc str_ireplace[] thay cho hàm này
Thông số
pattern
Mẫu để tìm kiếm. Nó có thể là một chuỗi hoặc một mảng với các chuỗi
Một số công cụ sửa đổi PCRE cũng có sẵn
replacement
Chuỗi hoặc một mảng có chuỗi để thay thế. Nếu tham số này là một chuỗi và tham số pattern
là một mảng, thì tất cả các mẫu sẽ được thay thế bằng chuỗi đó. Nếu cả hai tham số pattern
và replacement
đều là mảng, mỗi tham số pattern
sẽ được thay thế bằng tham số replacement
. Nếu có ít phần tử trong mảng replacement
hơn trong mảng pattern
, thì bất kỳ phần tử thừa nào của pattern
sẽ được thay thế bằng một chuỗi rỗng
replacement
có thể chứa các tài liệu tham khảo ở dạng
The slow black bear jumps over the lazy dog.9 hoặc
$pattern
0, với chữ cái được ưu tiên. Mọi tham chiếu như vậy sẽ được thay thế bằng văn bản được chụp bởi mẫu được đặt trong ngoặc đơn thứ n. n có thể từ 0 đến 99 và $pattern
1 hoặc $pattern
2 đề cập đến văn bản khớp với toàn bộ mẫu. Các dấu ngoặc đơn mở được tính từ trái sang phải [bắt đầu từ 1] để có được số mẫu con bắt. Lưu ý rằng các dấu gạch chéo ngược trong chuỗi ký tự có thể cần phải được thoátKhi làm việc với một mẫu thay thế trong đó một tham chiếu ngược được theo sau ngay lập tức bởi một số khác [i. e. đặt một số bằng chữ ngay sau một mẫu phù hợp], bạn không thể sử dụng ký hiệu $pattern
3 quen thuộc để phản hồi. Ví dụ: $pattern
4 sẽ gây nhầm lẫn cho preg_replace[] vì nó không biết liệu bạn có muốn tham chiếu ngược $pattern
3 theo sau là $pattern
6 theo nghĩa đen hay phản hồi ngược $pattern
4 theo sau là không có gì. Trong trường hợp này, giải pháp là sử dụng $pattern
8. Điều này tạo ra một phản hồi ngược $pattern
9 bị cô lập, để lại $pattern
6 dưới dạng nghĩa đen
Khi sử dụng công cụ sửa đổi $replacement
1 không dùng nữa, hàm này sẽ thoát khỏi một số ký tự [cụ thể là $replacement
2, $replacement
3, $replacement
4 và NULL] trong các chuỗi thay thế các tham chiếu ngược. Điều này được thực hiện để đảm bảo rằng không có lỗi cú pháp nào phát sinh từ việc sử dụng tham chiếu ngược với dấu ngoặc đơn hoặc dấu ngoặc kép [e. g. $replacement
5]. Đảm bảo rằng bạn biết cú pháp chuỗi của PHP để biết chính xác chuỗi được giải thích sẽ trông như thế nào
$replacement
6Chuỗi hoặc một mảng có chuỗi để tìm kiếm và thay thế
Nếu $replacement
6 là một mảng, thì việc tìm kiếm và thay thế được thực hiện trên mọi mục nhập của $replacement
6 và giá trị trả về cũng là một mảng
Nếu mảng $replacement
6 là kết hợp, các khóa sẽ được giữ nguyên trong giá trị được trả về
$subject
0Số lần thay thế tối đa có thể cho mỗi mẫu trong mỗi chuỗi $replacement
6. Mặc định là $subject
2 [không giới hạn]
$subject
3Nếu được chỉ định, biến này sẽ được điền với số lần thay thế được thực hiện
Giá trị trả về
preg_replace[] trả về một mảng nếu tham số $replacement
6 là một mảng hoặc một chuỗi nếu ngược lại
Nếu tìm thấy kết quả trùng khớp, thì $replacement
6 mới sẽ được trả lại, nếu không thì $replacement
6 sẽ được trả lại không thay đổi hoặc null
nếu xảy ra lỗi
Lỗi/Ngoại lệ
Sử dụng công cụ sửa đổi "\ e" là một lỗi;
Nếu mẫu biểu thức chính quy được chuyển không biên dịch thành biểu thức chính quy hợp lệ, thì một $subject
8 được phát ra
ví dụ
Ví dụ #1 Sử dụng phản hồi theo sau là chữ số
$limit
0
Ví dụ trên sẽ xuất ra
Ví dụ #2 Sử dụng mảng được lập chỉ mục với preg_replace[]
$limit
1
Ví dụ trên sẽ xuất ra
The bear black slow jumps over the lazy dog.
Bằng cách phân loại các mẫu và thay thế, chúng ta sẽ nhận được những gì chúng ta muốn
$limit
2
Ví dụ trên sẽ xuất ra
The slow black bear jumps over the lazy dog.
Ví dụ #3 Thay thế một số giá trị
$limit
3
Ví dụ trên sẽ xuất ra
Ví dụ #4 Xóa khoảng trắng
Ví dụ này loại bỏ khoảng trắng thừa khỏi một chuỗi
$limit
4
Ví dụ #5 Sử dụng tham số $subject
3
$limit
6
$limit
7
Ví dụ trên sẽ xuất ra
ghi chú
Ghi chú
Khi sử dụng các mảng có
pattern
vàreplacement
, các khóa được xử lý theo thứ tự chúng xuất hiện trong mảng. Điều này không nhất thiết giống như thứ tự chỉ mục số. Nếu bạn sử dụng các chỉ mục để xác địnhpattern
nào sẽ được thay thế bởireplacement
nào, bạn nên thực hiện một ksort[] trên mỗi mảng trước khi gọi preg_replace[]
Ghi chú
Khi cả
pattern
vàreplacement
đều là mảng, các quy tắc so khớp sẽ hoạt động tuần tự. Nghĩa là, cặppattern
/replacement
thứ hai sẽ hoạt động trên chuỗi kết quả từ cặppattern
/replacement
đầu tiên, không phải chuỗi ban đầu. Nếu bạn muốn mô phỏng các thay thế hoạt động song song, chẳng hạn như hoán đổi hai giá trị, hãy thay thế một mẫu bằng một trình giữ chỗ trung gian, sau đó trong một cặp sau đó, hãy thay thế trình giữ chỗ trung gian đó bằng một thay thế mong muốn