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

# coding=utf8 # the above tag defines encoding for this document and is for Python 2.x compatibility import re regex = r"\/wtb_(.*?)[\s](.*)?" test_str = ("/wtb_114 Адамантитовая руда\n" "/wtb_111 Алюминиевая руда\n" "/wtb_122 Веревка\n" "/wtb_102 Ветки\n" "/wtb_106 Древесный уголь\n" "/wtb_108 Железная руда\n" "/wtb_133 Заготовка кузнеца\n" "/wtb_145 Заготовка ремесленника\n" "/wtb_118 Загуститель\n" "/wtb_137 Зерно\n" "/wtb_120 Кожа\n" "/wtb_123 Кокс\n" "/wtb_136 Комбикорм\n" "/wtb_104 Кость животного\n" "/wtb_121 Костяная пудра\n" "/wtb_166 Лезвие кинжала демона\n" "/wtb_165 Лезвие кинжала охотника\n" "/wtb_139 Лезвие трезубца \n" "/wtb_138 Лезвие экскалибура\n" "/wtb_126 Металлический лист\n" "/wtb_130 Металлическое волокно\n" "/wtb_112 Мифриловая руда\n" "/wtb_146 Мифриловый сплав\n" "/wtb_101 Нитки\n" "/wtb_167 Обломок кирки шахтеров\n" "/wtb_169 Обломок костолома\n" "/wtb_168 Обломок молота гномов\n" "/wtb_131 Обработанная кожа\n" "/wtb_124 Очищенная пудра\n" "/wtb_109 Плотная ткань\n" "/wtb_107 Порошок\n" "/wtb_141 Пыль\n" "/wtb_116 Растворитель\n" "/wtb_164 Рецепт браслетов демона\n" "/wtb_163 Рецепт ботинок демона\n" "/wtb_152 Рецепт брони паладина\n" "/wtb_174 Рецепт кинжала демона\n" "/wtb_173 Рецепт кинжала охотника\n" "/wtb_170 Рецепт кирки шахтеров\n" "/wtb_172 Рецепт костолома\n" "/wtb_161 Рецепт куртки демона\n" "/wtb_171 Рецепт молота гномов\n" "/wtb_155 Рецепт перчаток паладина\n" "/wtb_154 Рецепт сапог паладина\n" "/wtb_144 Рецепт трезубца\n" "/wtb_162 Рецепт шапки демона\n" "/wtb_153 Рецепт шлема паладина\n" "/wtb_156 Рецепт щита паладина\n" "/wtb_143 Рецепт экскалибура \n" "/wtb_117 Рубин\n" "/wtb_115 Сапфир \n" "/wtb_135 Сено\n" "/wtb_132 Серебряная заготовка\n" "/wtb_110 Серебряная руда\n" "/wtb_125 Серебряный сплав\n" "/wtb_119 Сталь\n" "/wtb_127 Стальная заготовка\n" "/wtb_129 Стальная нить\n" "/wtb_105 Уголь\n" "/wtb_175 Упаковочный материал\n" "/wtb_113 Филосовский камень\n" "/wtb_159 Фрагмент ботинок демона\n" "/wtb_160 Фрагмент браслетов демона\n" "/wtb_140 Фрагмент брони паладина\n" "/wtb_157 Фрагмент куртки демона\n" "/wtb_150 Фрагмент перчаток паладина\n" "/wtb_149 Фрагмент сапог паладина\n" "/wtb_158 Фрагмент шапки демона\n" "/wtb_148 Фрагмент шлема паладина\n" "/wtb_151 Фрагмент щита паладина\n" "/wtb_103 Шкура животного\n" "/wtb_128 Шнурок\n" "/wtb_179 Хомячки\n" "/wtb_178 Мясо монстров") matches = re.finditer(regex, test_str) 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