Hương vị RegEx hiện đại (PCRE)
Bao gồm C, C ++, Delphi, EditPad, Java, JavaScript, Perl, PHP (preg), PostgreQuery, PowerGREP, PowerShell, Python, REALbasic, Real Studio, Ruby, TCL, VB.Net, VBScript, wxWidgets, XML Schema, Xojo XRegExp.
Khả năng tương thích PCRE có thể thay đổi
Bất cứ nơi nào: . ^ $ * + - ? ( ) [ ] { } \ |
Hương vị RegEx kế thừa (BRE / ERE)
Bao gồm awk, ed, egrep, emacs, GNUlib, grep, PHP (ereg), MySQL, Oracle, R, sed.
Hỗ trợ PCRE có thể được bật trong các phiên bản mới hơn hoặc bằng cách sử dụng tiện ích mở rộng
ERE / awk / egrep / emacs
Bên ngoài một lớp nhân vật: . ^ $ * + ? ( ) [ { } \ |
Bên trong một lớp nhân vật:^ - [ ]
BRE / ed / grep / sed
Bên ngoài một lớp nhân vật: . ^ $ * [ \
Bên trong một lớp nhân vật: ^ - [ ]
Đối với nghĩa đen, không thoát: + ? ( ) { } |
Đối với hành vi regex tiêu chuẩn, thoát:\+ \? \( \) \{ \} \|
Ghi chú
- Nếu không chắc chắn về một nhân vật cụ thể, nó có thể được thoát như
\xFF
- Các ký tự chữ và số không thể thoát được bằng dấu gạch chéo ngược
- Các biểu tượng tùy ý có thể được thoát bằng dấu gạch chéo ngược trong PCRE, nhưng không phải BRE / ERE (chúng chỉ phải được thoát khi được yêu cầu). Đối với PCRE
] -
chỉ cần thoát trong một lớp nhân vật, nhưng tôi giữ chúng trong một danh sách để đơn giản
- Các chuỗi biểu thức được trích dẫn cũng phải có các ký tự trích dẫn xung quanh được thoát và thường có dấu gạch chéo ngược được nhân đôi (như
"(\")(/)(\\.)"
so với /(")(\/)(\.)/
trong JavaScript)
- Ngoài các lối thoát, các triển khai regex khác nhau có thể hỗ trợ các bộ sửa đổi, các lớp ký tự, neo, định lượng và các tính năng khác. Để biết thêm chi tiết, hãy kiểm tra regular-expressions.info , hoặc sử dụng regex101.com để kiểm tra biểu thức của bạn sống
escape()
" để cho phép sử dụng các chuỗi tùy ý làm các phần regex.