Hướng dẫn escape sequence in php - trình tự thoát trong php
Ký tự dấu gạch chéo ngược có một số cách sử dụng. Thứ nhất, nếu nó được theo sau bởi một nhân vật không phải là một nhân vật không đồngumeric, nó sẽ lấy đi bất kỳ ý nghĩa đặc biệt nào mà nhân vật có thể có. Việc sử dụng dấu gạch chéo ngược này như một ký tự thoát hiểm áp dụng cả hai lớp ký tự bên trong và bên ngoài. Ví dụ: nếu bạn muốn khớp một ký tự "*", bạn sẽ viết "\*" trong mẫu. Điều này áp dụng cho dù nhân vật sau đây có được hiểu là một nhân vật tổng hợp hay không, do đó, luôn luôn an toàn khi đi trước một người không phải là vô cảm với "\" để chỉ định rằng nó là tự đứng. Cụ thể, nếu bạn muốn kết hợp một dấu gạch chéo ngược, bạn viết "\\".
Nếu một mẫu được biên dịch với tùy chọn PCRE_EXTENDS, thì khoảng trắng trong mẫu (trừ trong một lớp ký tự) và các ký tự giữa "#" bên ngoài một lớp ký tự và ký tự dòng tiếp theo sẽ bị bỏ qua. Một dấu gạch chéo ngược có thể được sử dụng để bao gồm một khoảng trắng hoặc ký tự "#" như một phần của mẫu. Việc sử dụng thứ hai của dấu gạch chéo ngược cung cấp một cách mã hóa các ký tự không in theo các mẫu theo cách có thể nhìn thấy. Không có hạn chế về sự xuất hiện của các ký tự không in, ngoài số 0 nhị phân kết thúc một mẫu, nhưng khi một mẫu được chuẩn bị bằng cách chỉnh sửa văn bản, thường dễ sử dụng một trong các chuỗi thoát sau hơn so với ký tự nhị phân nó đại diện: \ Một báo động, nghĩa là ký tự bel (hex 07) \ cx "control-x", trong đó x là bất kỳ ký tự nào \ e thoát (hex 1b) \ f formfeed (hex 0c) {xx} Một ký tự có thuộc tính XX, xem các thuộc tính unicode để biết thêm thông tin \ p {xx} Một ký tự không có thuộc tính XX, xem các thuộc tính Unicode để biết thêm thông tin .alarm, that is, the BEL character (hex 07) \cx "control-x", where x is any character \e escape (hex 1B) \f formfeed (hex 0C) \n newline (hex 0A) \p{xx} a character with the xx property, see unicode properties for more info \P{xx} a character without the xx property, see unicode properties for more info \r carriage return (hex 0D) \R line break: matches \n, \r and \r\n \t tab (hex 09) \xhh character with hex code hh \ddd character with octal code ddd, or backreference Hiệu ứng chính xác của " Sau " Sau khi " Việc xử lý dấu gạch chéo ngược theo sau là một chữ số khác 0 là phức tạp. Bên ngoài một lớp ký tự, PCRE đọc nó và bất kỳ chữ số nào sau đây dưới dạng số thập phân. Nếu số lượng nhỏ hơn 10 hoặc nếu có ít nhất nhiều điểm số trước đó đã bắt được dấu ngoặc đơn trong biểu thức, toàn bộ chuỗi được lấy làm tham chiếu trở lại. Một mô tả về cách thức hoạt động này được đưa ra sau đó, sau cuộc thảo luận về các mẫu con dấu ngoặc đơn. Bên trong một lớp ký tự, hoặc nếu số thập phân lớn hơn 9 và không có nhiều người bắt giữ, pcre đọc lại tối đa ba chữ số octal sau dấu gạch chéo ngược và tạo ra một byte duy nhất từ 8 bit có ý nghĩa nhất của giá trị. Bất kỳ chữ số nào tiếp theo đều đứng cho mình. Ví dụ: \ 040 là một cách khác để viết một không gian \ 40 là như nhau, với điều kiện có ít hơn 40 tiểu trình trước đó \ 7 luôn là một tham chiếu trở lại \ 11 có thể là một tài liệu tham khảo lại hoặc một cách khác để viết tab \ 011 luôn luôn là Tab \ 0113 là một tab theo sau là ký tự "3" \ 113 là ký tự có mã octal 113 (vì không thể có quá 99 tài liệu tham khảo trở lại) \ 377 là một byte bao gồm hoàn toàn 1 bit \ 81 là một Tài liệu tham khảo trở lại, hoặc một số 0 nhị phân theo sau là hai ký tự "8" và "1"is another way of writing a space \40 is the same, provided there are fewer than 40 previous capturing subpatterns \7 is always a back reference \11 might be a back reference, or another way of writing a tab \011 is always a tab \0113 is a tab followed by the character "3" \113 is the character with octal code 113 (since there can be no more than 99 back references) \377 is a byte consisting entirely of 1 bits \81 is either a back reference, or a binary zero followed by the two characters "8" and "1"Lưu ý rằng các giá trị octal từ 100 trở lên không được giới thiệu bởi số 0 hàng đầu, bởi vì không có quá ba chữ số bát phân đã từng được đọc. Tất cả các chuỗi xác định một giá trị byte duy nhất có thể được sử dụng cả các lớp ký tự bên trong và bên ngoài. Ngoài ra, bên trong một lớp ký tự, chuỗi " Việc sử dụng thứ ba của dấu gạch chéo ngược là để chỉ định các loại ký tự chung: \ d bất kỳ chữ số thập phân nào \ d bất kỳ ký tự nào không phải là chữ số thập phân ký tự khoảng trắng dọc \ v bất kỳ ký tự nào không phải là ký tự khoảng trắng dọcany decimal digit \D any character that is not a decimal digit \h any horizontal whitespace character \H any character that is not a horizontal whitespace character \s any whitespace character \S any character that is not a whitespace character \v any vertical whitespace character \V any character that is not a vertical whitespace character \w any "word" character \W any "non-word" characterMỗi cặp chuỗi thoát hiểm phân vùng hoàn chỉnh của các ký tự thành hai bộ phân tách. Bất kỳ ký tự nhất định đều khớp với một, và chỉ một, của mỗi cặp. Các ký tự "khoảng trắng" là HT (9), LF (10), FF (12), CR (13) và không gian (32). Tuy nhiên, nếu sự kết hợp cụ thể của ngôn ngữ đang diễn ra, các ký tự có điểm mã trong phạm vi 128-255 cũng có thể được coi là ký tự khoảng trắng, ví dụ, NBSP (A0). Một ký tự "từ" là bất kỳ chữ cái hoặc chữ số nào hoặc ký tự dấu gạch dưới, nghĩa là bất kỳ ký tự nào có thể là một phần của "từ" perl. Định nghĩa về các chữ cái và chữ số được kiểm soát bởi các bảng ký tự của PCRE và có thể thay đổi nếu kết hợp phù hợp cụ thể của ngôn ngữ đang diễn ra. Ví dụ, trong ngôn ngữ "FR" (tiếng Pháp), một số mã ký tự lớn hơn 128 được sử dụng cho các chữ cái có dấu và chúng được khớp với Các chuỗi loại ký tự này có thể xuất hiện cả hai lớp ký tự bên trong và bên ngoài. Mỗi người khớp một ký tự của loại thích hợp. Nếu điểm khớp hiện tại ở cuối chuỗi chủ đề, tất cả đều thất bại, vì không có ký tự để khớp. Việc sử dụng thứ tư của dấu gạch chéo ngược là cho một số khẳng định đơn giản. Một xác nhận chỉ định một điều kiện phải được đáp ứng tại một điểm cụ thể trong một trận đấu, mà không tiêu thụ bất kỳ ký tự nào từ chuỗi chủ đề. Việc sử dụng các mẫu đơn cho các khẳng định phức tạp hơn được mô tả dưới đây. Các khẳng định chộp lại là \ B Boundary \ B không phải là một từ ranh giới \ Bắt đầu của chủ đề (không phụ thuộc vào chế độ đa dòng) \ z cuối của chủ đề hoặc dòng mới ở cuối (không phụ thuộc vào chế độ đa dòng) Vị trí phù hợp trong chủ đềword boundary \B not a word boundary \A start of subject (independent of multiline mode) \Z end of subject or newline at end (independent of multiline mode) \z end of subject (independent of multiline mode) \G first matching position in subject Những xác nhận này có thể không xuất hiện trong các lớp ký tự (nhưng lưu ý rằng " Một ranh giới từ là một vị trí trong chuỗi chủ thể trong đó ký tự hiện tại và ký tự trước không khớp với Các xác nhận Khẳng định Mike tại Eastghost Dot Com ¶ ¶ 10 năm trước
\c; 4Ẩn danh ¶ ¶ 3 năm trước
\c; 4Dây ¶ ¶ 4 năm trước
\x{...} 0Grigor tại miền Gatchev.info ¶ ¶ 11 năm trước
Dây ¶ ¶ 4 năm trước
\xhh 3Thông tin tại Maisuma Dot JP ¶ ¶ 8 năm trước
\c; 4bluemoehre tại gmx dot de ¶ ¶ 8 năm trước
\c; 4bluemoehre tại gmx dot de ¶ ¶ Lỗi17191 tại Gmail Dot Com ¶
7 năm trước ¶ vea dot git tại gmail dot com ¶
\c; 45 năm trước ¶ collons tại ya dot com ¶
|