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 (4)

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

/
/
gmx

Test String

Code Generator

Generated Code

$re = '/^ (?<integer> (?<n1> (?<n1nz>[一二三四五六七八九壹贰叁肆伍陆柒捌玖]) |(?<n1wz>[〇零]) ) |(?<n2> (?<h2nz> (?<n2nz>(?<n2z1>(?&n1nz)[十拾])(?&n1nz)) |[十拾](?&n1nz) ) |(?<h2wz> (?<n2wz>(?&n2z1)) |[十拾] ) ) |(?<n3> (?<n3nz>(?<n3z2>(?<h1nz>(?&n1nz)|两)[百佰])((?&n2nz)|(?&n1wz)(?&n1nz))) |(?<n3wz>(?&n3z2)(?&n2wz)?) ) |(?<n4> (?<n4nz>(?<n4z3>(?&h1nz)[千仟])((?&n3nz)|(?&n1wz)((?&n2nz)|(?&n1nz)))) |(?<n4wz> (?&n4z3)(?&n3wz)? |(?&n4z3)(?&n1wz)(?&n2wz) ) ) |(?<n5_7> (?<n5_7nz> (?<n5_7z4>(?<h1_3nz>(?&h1nz)|(?&h2nz)|(?&n3nz))[万萬])((?&n4nz)|(?&n1wz)((?&n3nz)|(?&n2nz)|(?&n1nz))) |(?<n6_7z5_7>(?<h2_3wz>(?&h2wz)|(?&n3wz))[万萬])((?&n1wz)((?&n4nz)|(?&n3nz)|(?&n2nz)|(?&n1nz))) ) |(?<n5_7wz> (?&n5_7z4)((?&n4wz)|(?&n1wz)((?&n3wz)|(?&n2wz)))? |(?&n6_7z5_7)((?&n1wz)((?&n4wz)|(?&n3wz)|(?&n2wz)))? ) ) |(?<n8> (?<n8nz> (?<n8z4>(?&n4nz)[万萬])((?&n4nz)|(?&n1wz)((?&n3nz)|(?&n2nz)|(?&n1nz))) |(?<n8z5_7>(?&n4wz)[万萬])(?&n1wz)((?&n4nz)|(?&n3nz)|(?&n2nz)|(?&n1nz)) ) |(?<n8wz> (?&n8z4)((?&n4wz)|(?&n1wz)((?&n3wz)|(?&n2wz)))? |(?&n8z5_7)((?&n1wz)((?&n4wz)|(?&n3wz)|(?&n2wz)))? ) ) |(?<n9_16> ((?&h1_3nz)(?&n4nz)|(?&n5_7nz)(?&n8nz))[亿億]((?&n8)|(?&n1wz)((?&n5_7)|(?&n4)|(?&n3)|(?&n2)|(?&n1)))? |((?&h2_3wz)(?&n4wz)|(?&n5_7wz)(?&n8wz))[亿億]((?&n1wz)((?&n8)|(?&n5_7)|(?&n4)|(?&n3)|(?&n2)|(?&n1)))? ) ) (?<decimal>点 [〇一二三四五六七八九零壹贰叁肆伍陆柒捌玖]+ )? $/mx'; $str = '三十四 ↑True 三十四万 ↑True 三十四万三百二十 ↑False 三百四十五万零三百二十 ↑True 三十四万零三百 ↑True 二十万零一千 ↑True 二十万零一百 ↑True 二十万零一 二十万 二万零一十 二万零一百 二万零一百一十 二万一千一百一十一 两万零一 二百万零一 两千万零一 两千两百万零一 两千万零一十 两千万零一十二 两万零二千 两千万零两百 两千万零二十 两千万零二百二十 二千零二十一 二千零二十 两千万零二千零二十一 两千万零二十一 两千万零二百 两千万零两百二十一 两千万零两千两百二十 两千万零二千零二十 两千万零二千零二 两千万零二百零三 两千三百四十万三千二百三十 二百万 两千二百二十一万 两千两百万 两千两百一十万 两千三百四十一万 两千零二十 两千零二十万 两千零一十五 两千零一十五万 两千零三十万 两百一十万 一十万 十万 两千两百 两千两百万 两千两百二十万 两千三百四十五万 两千零一十一万 两百一十万 两百四十二万 两百零六万 二十一万 四百万 两百一十万 两百万零三百零一 ↑True 三百四十万零一 ↑True 四百五十六万零一十 ↑True 五百零七万零三百 ↑True 一千万零二十三 ↑True 三百一十 ↑True 一千两百万零三百一十 ↑True 三百 一千万零三百 ↑True 一千零一万零三百零一 ↑True 一千两百三十万零一十 ↑True 一千两百四十四万零二十三 ↑True 一千 ↑True 一千零四十 ↑True 一千零四十 ↑True 一千四百 ↑True 一千零四万 ↑True 一千零四十 一千零四十万 ↑True 一千四百万 ↑True 一千零四十五万零两百零四 ↑True 一亿零两百万 ↑True 一亿两千万 ↑True 一亿零两千万 ↑False 十亿零两千万 ↑True 一亿零两百 ↑True 一亿零二十 ↑True 一亿零二十二 ↑True 一万亿零二 ↑True 九千八百七十六万五千四百三十二亿一千两百三十四万五千六百七十八 ↑True 九千零七十六万零四百零二亿零两百零四万零六百零八 ↑True 一千零 ↑False 两千零零六 ↑False 两千零六 ↑True 九千零零七十六万零四百零二亿零两百零四万零六百零八 ↑False 九千零六万零二亿零四万零八 ↑True 九千零六万零二亿零 ↑False 一千万亿零二点二 ↑True 一千零二万亿零二 ↑True 一千零二万億零二点两 ↑False 一千零二万億零二点四 ↑True 两万两千 ↑True 两万零两千 ↑False 两万零两百 ↑True 两亿零五千万 ↑False 两亿零五百万 ↑True 一百 ↑True 九千 ↑True 两千零两百 ↑False 五百万零四千三百 ↑True 五百万四千三百 ↑False 十万零一千亿四千万零四千 ↑False 十万零一千亿零四千万零四千 ↑True 十万零一千亿 ↑True 十万零四千零四十 两千两百 ↑True 二百零六十 ↑False 二百五十 ↑True 二百五十七 ↑True 二百零八 ↑True 二 ↑True 两 ↑False 一十 ↑True 二十 ↑True 十五 ↑True 一十五 ↑True 二十五 ↑True 三十四 ↑True 两百 ↑True 三百四十 ↑True 四百五十六 ↑True 五百零七 ↑True 一千 ↑True 一千零一 ↑True 一千零四十 ↑True 一千零四十五 ↑True 一千两百 ↑True 一千两百三十 ↑True 一千两百四十四 ↑True 两千六百八十万零一百 ↑True 两千六百八十万零一千 ↑True 两千六百八十万一千 ↑False 两千六百零八万一千 ↑True 二万 ↑True 两万 ↑True 二十万 ↑True 十五万 ↑True 三十四万 ↑True 两百万 ↑True 三百四十万 ↑True 四百五十六万 ↑True 五百零七万 ↑True 一千万 ↑True 一千两百万 ↑True 一千零一万 ↑True 一千两百三十万 ↑True 一千两百四十四万 ↑True 一千零四十 ↑Tru 一千万 ↑Truee 一千四百万 ↑Truee 一千零四万 ↑Truee 一千零四十 ↑True 一千零四十万 ↑True 一千零四十五 ↑True 一千零四十五万 ↑True 二万零一 ↑True 两万零三百 ↑True 二十 ↑True 二十万 ↑True 两百万 两千万 二万 十五万零二十三 ↑True '; 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