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
  • Match everything enclosed
    (?:...)
  • Capture everything enclosed
    (...)
  • 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
No Match

r"
"
gm

Test String

Code Generator

Generated Code

# coding=utf8 # the above tag defines encoding for this document and is for Python 2.x compatibility import re regex = r"(?P<ipc_cpc_fi>\b(?P<section>[A-HY])(?(section)(?P<class>\d{2})?)(?(class)(?P<subclass>[A-Z])?)(?(subclass) *(?P<group>\d{1,})?)(?(group)(?:/(?P<subgroup>\d{1,}))?)(?(subgroup) *(?P<subsubgroup>[A-Z]?))\b)" test_str = ("\n" "FI F15D 1/08 A 3H091 for releasing the airflow widely (combined with the Coanda effect) especially controlling the flow direction from nozzles 気流を広角に放出させるためのもの〔コアンダ効果を併用するもの〕特にノズルからの流れ方向制御\n" "FI F24F 13/08 C 3L081 Fluid devices (control members using Coanda effect) 流体素子,例.コアンダ効果を用いる制御部材\n" "CPC B01F5/0293 {the jet injector being of coanda type, i.e. having a surface to attract the jet for adjusting its direction} {ジェットインジェクターがコアンダ型であるもの,すなわちその方向に噴射流を引き付ける面をもつもの}\n" "CPC B07B7/0865 {using the coanda effect of the moving gas stream} {気体流れのコアンダ効果を用いるもの}\n" "CPC B08B2205/005 Using the coanda effect of the gas flow/stream ガス流/ガスの流れのコアンダ効果を使用するもの\n" "CPC B63H2011/002 {using Coanda effect, i.e. the tendency of fluid jets to be attracted to nearby surfaces} \n" "CPC B65H29/248 {with coanda effect (separating from a stack B65H3/14)} {コアンダ効果をもつもの(積層物からの分離B65H3/14)}\n" "CPC F05D2270/173 by the Coanda effect コアンダ効果によるもの\n" "CPC F15C1/008 {Other applications, e.g. for air conditioning, medical applications, other than in respirators, derricks for underwater separation of materials by coanda effect, weapons} {他の適用,例.空調,医療への適用,呼吸マスク以外のもの,コアンダ効果による物質の水面下分離用のやぐら,武器}\n" "CPC F15C1/08 Boundary-layer devices, e.g. wall-attachment amplifiers {coanda effect (fluid oscillators of pulse generators F15B21/12)} 境界層装置,例.壁面付着形素子,{コアンダ効果(パルス発生機の流体発振機F15B21/12)}\n" "CPC F24F2221/28 using the Coanda effect コアンダ効果を用いるもの\n" "CPC F26B13/104 {supported by fluid jets only; Fluid blowing arrangements for flotation dryers, e.g. coanda nozzles} {流動体噴射のみにより支持されるもの;浮動乾燥機のための流動体吹き付け装置,例.コアンダノズル}\n" "CPC Y10S239/07 Coanda コアンダ\n" "CPC Y10T137/206 Flow affected by fluid contact, energy field or coanda effect [e.g., pure fluid device or system] ") matches = re.finditer(regex, test_str, re.MULTILINE) for matchNum, match in enumerate(matches, start=1): print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group())) for groupNum in range(0, len(match.groups())): groupNum = groupNum + 1 print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.group(groupNum))) # Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.

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 Python, please visit: https://docs.python.org/3/library/re.html