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 = '/^\d{4}[a-zA-Z0-9]$/m'; $str = '# CPT is a uniform coding system consisting of descriptive terms and identifying codes used primarily to identify medical services and procedures furnished by physicians and other health care professionals for which they bill public or private health insurance programs. # It is a numeric coding system maintained by the American Medical Association (AMA). # CPT codes can be subdivided into 3 levels/categories (not to be confused with HCPCS Level II!): # - Category I: Evaluation & Management Services, Anesthesia, Surgery, Radiology, Procedures, Pathology & Laboratory Procedures, and Medicine Services & Procedures. All 5 characters are numeric. # - Category II: Optional, but provide extra information about additional procedures typically performed with Category I CPT Codes, for example 3008F is “Body Mass Index (BMI) documented” which occurs during the Evaluation & Management Services. First 4 digits numeric, followed by an “F”. # - Category III: Describe emergent or experimental services that help providers and government agencies track efficacy of those medical techniques. They may become Category I but have an expiration of 5 years. First 4 digits are numeric, followed by any other letter. # This regex does *not* match codes with optional modifiers:- # "A medical coding modifier is two characters (letters or numbers) appended to a CPT® or HCPCS Level II code. The modifier provides additional information about the medical procedure, service, or supply involved without changing the meaning of the code. Medical coders use modifiers to tell the story of a particular encounter." # (https://www.aapc.com/resources/what-are-medical-coding-modifiers) # There is another pattern in regex101 that *does* match codes with optional modifiers # Matched patterns (codes might not necessarily be genuine, in-dictionary codes! Regex simply matches the pattern) 33275 47360 3008F 0503F 1030F 6015F 0123T 0123t # Does not match 0000 1 123456 123A '; 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