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

/
/
g

Test String

Code Generator

Generated Code

// include the latest version of the regex crate in your Cargo.toml extern crate regex; use regex::Regex; fn main() { let regex = Regex::new(r#"^{[\s\S]*adam_id":1082956994[\s\S]*"#).unwrap(); let string = "{\"status\":0, \"environment\":\"Production\", \"receipt\":{\"receipt_type\":\"Production\", \"adam_id\":1082956994, \"app_item_id\":1082956994, \"bundle_id\":\"gemini.Filmmaker-Pro\", \"application_version\":\"1.0\", \"download_id\":94037108793568, \"version_external_identifier\":831598329, \"receipt_creation_date\":\"2019-06-14 12:39:05 Etc/GMT\", \"receipt_creation_date_ms\":\"1560515945000\", \"receipt_creation_date_pst\":\"2019-06-14 05:39:05 America/Los_Angeles\", \"request_date\":\"2019-06-14 12:40:38 Etc/GMT\", \"request_date_ms\":\"1560516038237\", \"request_date_pst\":\"2019-06-14 05:40:38 America/Los_Angeles\", \"original_purchase_date\":\"2019-06-14 12:30:32 Etc/GMT\", \"original_purchase_date_ms\":\"1560515432000\", \"original_purchase_date_pst\":\"2019-06-14 05:30:32 America/Los_Angeles\", \"original_application_version\":\"1.0\", \"in_app\":[ {\"quantity\":\"1\", \"product_id\":\"FilmmakerProIAP24\", \"transaction_id\":\"540000387361317\", \"original_transaction_id\":\"540000387361317\", \"purchase_date\":\"2019-06-14 12:32:51 Etc/GMT\", \"purchase_date_ms\":\"1560515571000\", \"purchase_date_pst\":\"2019-06-14 05:32:51 America/Los_Angeles\", \"original_purchase_date\":\"2019-06-14 12:32:53 Etc/GMT\", \"original_purchase_date_ms\":\"1560515573000\", \"original_purchase_date_pst\":\"2019-06-14 05:32:53 America/Los_Angeles\", \"expires_date\":\"2019-06-17 12:32:51 Etc/GMT\", \"expires_date_ms\":\"1560774771000\", \"expires_date_pst\":\"2019-06-17 05:32:51 America/Los_Angeles\", \"web_order_line_item_id\":\"540000120366745\", \"is_trial_period\":\"true\", \"is_in_intro_offer_period\":\"false\"}]}, \"latest_receipt_info\":[ {\"quantity\":\"1\", \"product_id\":\"FilmmakerProIAP24\", \"transaction_id\":\"540000387361317\", \"original_transaction_id\":\"540000387361317\", \"purchase_date\":\"2019-06-14 12:32:51 Etc/GMT\", \"purchase_date_ms\":\"1560515571000\", \"purchase_date_pst\":\"2019-06-14 05:32:51 America/Los_Angeles\", \"original_purchase_date\":\"2019-06-14 12:32:53 Etc/GMT\", \"original_purchase_date_ms\":\"1560515573000\", \"original_purchase_date_pst\":\"2019-06-14 05:32:53 America/Los_Angeles\", \"expires_date\":\"2019-06-17 12:32:51 Etc/GMT\", \"expires_date_ms\":\"1560774771000\", \"expires_date_pst\":\"2019-06-17 05:32:51 America/Los_Angeles\", \"web_order_line_item_id\":\"540000120366745\", \"is_trial_period\":\"true\", \"is_in_intro_offer_period\":\"false\"}], \"latest_receipt\":\"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\", \"pending_renewal_info\":[{\"auto_renew_product_id\":\"FilmmakerProIAP24\", \"original_transaction_id\":\"540000387361317\", \"product_id\":\"FilmmakerProIAP24\", \"auto_renew_status\":\"1\"}]}"; // result will be an iterator over tuples containing the start and end indices for each match in the string let result = regex.captures_iter(string); for mat in result { println!("{:?}", mat); } }

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 Rust, please visit: https://docs.rs/regex/latest/regex/