Regular Expressions 101

Save & Share

Flavor

  • PCRE2 (PHP >=7.3)
  • PCRE (PHP <7.3)
  • ECMAScript (JavaScript)
  • Python
  • Golang
  • Java 8
  • .NET 7.0 (C#)
  • Rust
  • Regex Flavor Guide

Function

  • Match
  • Substitution
  • List
  • Unit Tests

Tools

Sponsors
There are currently no sponsors. Become a sponsor today!
An explanation of your regex will be automatically generated as you type.
Detailed match information will be displayed here automatically.
  • All Tokens
  • Common Tokens
  • General Tokens
  • Anchors
  • Meta Sequences
  • Quantifiers
  • Group Constructs
  • Character Classes
  • Flags/Modifiers
  • Substitution
  • A single character of: a, b or c
    [abc]
  • A character except: a, b or c
    [^abc]
  • A character in the range: a-z
    [a-z]
  • A character not in the range: a-z
    [^a-z]
  • A character in the range: a-z or A-Z
    [a-zA-Z]
  • Any single character
    .
  • Alternate - match either a or b
    a|b
  • Any whitespace character
    \s
  • Any non-whitespace character
    \S
  • Any digit
    \d
  • Any non-digit
    \D
  • Any word character
    \w
  • Any non-word character
    \W
  • Non-capturing group
    (?:...)
  • Capturing group
    (...)
  • Zero or one of a
    a?
  • Zero or more of a
    a*
  • One or more of a
    a+
  • Exactly 3 of a
    a{3}
  • 3 or more of a
    a{3,}
  • Between 3 and 6 of a
    a{3,6}
  • Start of string
    ^
  • End of string
    $
  • A word boundary
    \b
  • Non-word boundary
    \B

Regular Expression

/
/
gm

Test String

Code Generator

Generated Code

$re = '/regex_2/m'; $str = 'Kí tự Ý nghĩa Khớp \'x\' hoặc \'y\' Ví dụ, khớp với \'x\' trong chuỗi "target x" và \'y\' trong chuỗi "target y". {n, m} Kí tự đứng trước phải xuất hiện từ n đến m lần. n và m là số nguyên dương và n <= m. Nếu m bị bỏ qua, nó tương đương như ∞. Ví dụ, /a{1,3}/ không khớp bất kì kí tự nào trong "cndy"; khớp kí tự \'a\' trong "candy"; khớp 2 kí tự \'a\' đầu tiên trong "caandy"; và khớp với các bộ \'aaa\', \'aaa\', \'a\' trong "caaaaaaandy". [xyz] Lớp kí tự. Loại mẫu này dùng để so khớp với một kí tự bất kì trong dấu ngoặc vuông, bao gồm cả escape sequences. Trong lớp kí tự, dấu chấm (.) và dấu hoa thị () không còn là kí tự đặc biệt nên ta không cần kí tự thoát đứng trước nó. Bạn có thể chỉ định một khoảng kí tự bằng cách sử dụng một kí tự gạch nối (-) Ví dụ: Mẫu [a-d] so khớp tương tự như mẫu [abcd], khớp với \'a\', \'c\', \'d\' trong "candy" và \'c\' trong "city". Mẫu /[a-z.]+/ và /[\\w.]+/ khớp với toàn chuỗi "cand.yyyy". [^xyz] Lớp kí tự phủ định. Khi kí tự ^ đứng đầu tiên trong dấu ngoặc vuông, nó phủ định mẫu này. mẫu sẽ khớp với các ký tự không thuộc vào khoảng trên [\\b] Khớp với kí tự dịch lùi - backspace (U+0008). Bạn phải đặt trong dấu ngoặc vuông nếu muốn so khớp một kí tự dịch lùi. \\b Khớp với kí tự biên. Kí tự biên là một kí tự giả, nó khớp với vị trí mà một kí tự không được theo sau hoặc đứng trước bởi một kí tự khác. Lưu ý rằng một kí tự biên được khớp sẽ không bao gồm trong kết quả so khớp. Nói cách khác, độ dài của một kí tự biên là 0. (Đừng nhầm lẫn với mẫu [\\b]). Ví dụ: /\\bc/ khớp với \'c\' trong chuỗi "candy" /nd\\b/ không khớp \'nd\' trong chuỗi "candy", bởi vì \'oo\' được theo sau bởi kí tự \'y\' \\B Khớp với kí tự không phải kí tự biên. Mẫu này khớp tại vị trí mà kí tự trước và kí tự sau nó cùng kiểu: hoặc cả hai là kí tự hoặc cả hai không phải là kí tự. Bắt đầu và kết thúc chuỗi không được xem là những kí tự. Ví dụ, /n\\B./ khớp với \'\'dy" trong "candy" \\d Khớp với một kí tự số. Tương đương với mẫu [0-9]. Ví dụ: /\\d/ hoặc /[0-9]/ khớp với \'2\' trong chuỗi "candy2 is candy." \\D Khớp với một kí tự không phải là kí tự số. Tương đương với mẫu [^0-9]. \\f Khớp với kí tự phân trang - form feed (U+000C). \\n Khớp với kí tự xuống dòng - line feed (U+000A). \\r Khớp với kí tự quay đầu dòng - carriage return (U+000D). \\s Khớp với một kí tự khoảng trắng, bao gồm trống - space, tab, phân trang - form feed, phân dòng - line feed. Tương đương với [ \\f\\n\\r\\t\\v​\\u00a0\\u1680​\\u180e\\u2000​\\u2001\\u2002​\\u2003\\u2004​\\u2005\\u2006​\\u2007\\u2008​\\u2009\\u200a​\\u2028\\u2029​​\\u202f\\u205f​\\u3000]. Ví dụ: /\\s\\w*/ khớp với \' bar\' trong "foo bar." \\S Khớp với một kí tự không phải khoảng trắng. Tương đương với [^ \\f\\n\\r\\t\\v​\\u00a0\\u1680​\\u180e\\u2000​\\u2001\\u2002​\\u2003\\u2004​\\u2005\\u2006​\\u2007\\u2008​\\u2009\\u200a​\\u2028\\u2029​\\u202f\\u205f​\\u3000]. Ví dụ: /\\S\\w*/ khớp với \'foo\' trong chuỗi "foo bar." \\t Khớp với kí tự tab (U+0009). \\v Khớp với kí tự vertical tab (U+000B). \\w Khớp với tất cả kí tự là chữ, số và gạch dưới. Tương đương với mẫu [A-Za-z0-9_]. \\W Khớp với tất cả kí tự không phải là chữ. Tương đương với mẫu [^A-Za-z0-9_].'; preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0); // Print the entire match result var_dump($matches);

Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php