Regular Expressions 101

Save & Share

  • Regex Version: ver. 1
  • Update Regex
    ctrl+⇧+s
  • Save new Regex
    ctrl+s
  • Add to Community Library

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

/
/
gim

Test String

Code Generator

Generated Code

$re = '/(?<ipaddress>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) - - \[(?P<dateandtime>\d{2}\/[a-z]{3}\/\d{4}:\d{2}:\d{2}:\d{2} (\+|\-)\d{4})\] (((\"(GET|POST|PUT|PATCH|DELETE|OPTIONS|HEAD|TRACE|CONNECT|[.*\\\\x.*]) )(?P<url>.+)(http\/1\.(1|0)"))|.*\\\\x.*) (?P<statuscode>(301|4(44|03|00))) (?P<bytessent>\d+) (["](?P<refferer>(\-)|(.+))["]) (["](?P<useragent>.+)["])/im'; $str = '51.159.23.43 - - [30/Apr/2021:15:26:20 +0800] "GET / HTTP/1.1" 444 0 "-" "-" 89.248.170.22 - - [30/Apr/2021:15:26:31 +0800] "GET / HTTP/1.1" 444 0 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:76.0) Gecko/20100101 Firefox/76.0" 172.104.242.173 - - [30/Apr/2021:15:43:51 +0800] "\\xBA\\xABd\\xA1EZC\\xDBM\\x87\\xEE^\\xFD\\xBF\\x159 X\\xD4>\\x12\\x98\\xC4<\\xE0\\x13\\xCF\\x00\\xAC\\xA09\\xD7\\x90#8~\\x8C\\xDE\\x9DReF\\xBF%1Q\\xE0\\x9D\\x06&g\\xBB\\x82\\x95\\x19\\xED\\x07\\x14\\x19ZP\\x80+\\x94e\\xC3\\xE6\\x85\\x06\\xA4\\x99\\x8B\\x19l\\x01\\xEA\\x88Y\\x91\\x16\\x95\\xC4\\xC8\\x0EH\\x02\\xC7\\x93g\\xC14FW\\x05|\\xFB\\xF3T\\xB8\\xFD\\xCB\\xBB)\\xE3\\xCE\\xDD\\xCD7\\x9E\\xEFP\\x8C\\xA4[V\\xFD\\x98\\xC9l\\x82\\xF5\\xE4\\xC1d\\x87X\\xF7\\x9B\\xBF\\xE8q\\x12\\x99&\\xDB,\\xF5\\x87\\xD7\\xA8\\x97j;\\xE3\\xEA\\xA7\\xB4\\xB0\\x02\\xAD\\x8DE\\x9B\\xAAB\\x80\\x0E)\\xA9\\xE9\\xAF}\\x18\\x8E\\xB8\\x1E\\x99\\x04\\xEF\\xA8\\x8C\\xE8\\x04\\xE2\\xD3\\xED)1\\x91\\xC1\\x8F\\x88\\x8C\\x81\\xF0\\xDB\\xA5\\x88\\x95H\\x9BZ\\xAB\\xCE\\xBF\\xF4E%P*\\x88KFY6\\x9E\\xE7::j\\xD4\\x8A\\xA8V\\x9A\\xAA\\xAB\\xAF\\xC3&.\\xED[\\x04\\xC5e\\x7F\\x08\\xBE\\x8Ar\\xA7\\xB0\\x99F\\xF7\\x11\\xE5\\xD6\\x96\\x8CIm+w\\x1C\\xFDuU\\x14\\x0F!x\\xAC\\xE8MPy\\xC3\\x19!2\\xA0\\xED\\xC0}!Rw\\x14\\x8E\\x1B\\xC4\\xE1\\xA0\\xAF+\\xADKk\\xC5\\xE0\\x5Cs\\x9C\\xBD\\xCB" 400 150 "-" "-" 192.241.216.138 - - [30/Apr/2021:16:57:52 +0800] "GET /portal/redlion HTTP/1.1" 444 0 "-" "Mozilla/5.0 zgrab/0.x" 193.118.53.194 - - [30/Apr/2021:17:00:02 +0800] "GET / HTTP/1.1" 444 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36" 45.155.205.84 - - [30/Apr/2021:17:09:35 +0800] "GET /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php HTTP/1.1" 444 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" 45.155.205.84 - - [30/Apr/2021:17:09:35 +0800] "POST /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php HTTP/1.1" 444 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" 45.155.205.84 - - [30/Apr/2021:17:09:38 +0800] "GET /index.php?s=/Index/\\x5Cthink\\x5Capp/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1][]=HelloThinkPHP21 HTTP/1.1" 444 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" 45.155.205.84 - - [30/Apr/2021:17:09:40 +0800] "GET /?XDEBUG_SESSION_START=phpstorm HTTP/1.1" 444 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" 45.155.205.84 - - [30/Apr/2021:17:09:41 +0800] "POST /mifs/.;/services/LogService HTTP/1.1" 444 0 "https://125.160.120.137:443" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" 45.155.205.84 - - [30/Apr/2021:17:09:43 +0800] "GET /wp-content/plugins/wp-file-manager/readme.txt HTTP/1.1" 444 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" 45.155.205.84 - - [30/Apr/2021:17:09:44 +0800] "GET /console/ HTTP/1.1" 444 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" 45.155.205.84 - - [30/Apr/2021:17:09:45 +0800] "POST /Autodiscover/Autodiscover.xml HTTP/1.1" 444 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" 45.155.205.84 - - [30/Apr/2021:17:09:47 +0800] "GET /_ignition/execute-solution HTTP/1.1" 444 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" 45.155.205.84 - - [30/Apr/2021:17:09:47 +0800] "POST /api/jsonws/invoke HTTP/1.1" 444 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" 89.248.170.22 - - [30/Apr/2021:17:23:51 +0800] "HEAD / HTTP/1.0" 444 0 "-" "-" 192.241.220.215 - - [30/Apr/2021:17:26:46 +0800] "GET /actuator/health HTTP/1.1" 444 0 "-" "Mozilla/5.0 zgrab/0.x" 128.14.133.58 - - [30/Apr/2021:17:40:03 +0800] "GET / HTTP/1.1" 444 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36" 74.120.14.37 - - [30/Apr/2021:17:41:07 +0800] "GET / HTTP/1.1" 444 0 "-" "-" 74.120.14.37 - - [30/Apr/2021:17:41:09 +0800] "GET / HTTP/1.1" 400 248 "-" "-" 74.120.14.37 - - [30/Apr/2021:17:41:09 +0800] "GET / HTTP/1.1" 400 248 "-" "Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)" 192.241.212.72 - - [30/Apr/2021:18:36:39 +0800] "GET /hudson HTTP/1.1" 444 0 "-" "Mozilla/5.0 zgrab/0.x" 189.39.247.159 - - [30/Apr/2021:19:01:06 +0800] "GET / HTTP/1.1" 444 0 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36" 80.82.77.192 - - [30/Apr/2021:19:18:14 +0800] "GET / HTTP/1.1" 444 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36" 80.82.77.192 - - [30/Apr/2021:19:22:45 +0800] "GET / HTTP/1.1" 400 248 "-" "Mozilla/5.0 zgrab/0.x" 190.94.151.114 - - [30/Apr/2021:19:40:19 +0800] "GET / HTTP/1.1" 444 0 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36" 92.118.161.21 - - [30/Apr/2021:19:47:03 +0800] "GET / HTTP/1.1" 444 0 "-" "NetSystemsResearch studies the availability of various services across the internet. Our website is netsystemsresearch.com" 128.14.211.186 - - [30/Apr/2021:19:58:55 +0800] "GET / HTTP/1.1" 444 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36" 119.15.88.56 - - [30/Apr/2021:20:46:18 +0800] "GET / HTTP/1.1" 444 0 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36" 34.77.163.42 - - [30/Apr/2021:20:47:53 +0800] "GET / HTTP/1.1" 444 0 "-" "python-requests/2.25.1" 194.62.6.193 - - [30/Apr/2021:20:56:30 +0800] "HEAD / HTTP/1.0" 444 0 "-" "-" 209.141.33.74 - - [30/Apr/2021:20:57:03 +0800] "POST /boaform/admin/formLogin HTTP/1.1" 444 0 "http://125.160.120.137:80/admin/login.asp" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:71.0) Gecko/20100101 Firefox/71.0" 216.21.170.197 - - [30/Apr/2021:21:09:26 +0800] "GET /admin/login.asp HTTP/1.1" 444 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36" 213.163.23.68 - - [30/Apr/2021:21:09:26 +0800] "GET /:80/admin/login.asp HTTP/1.1" 444 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36" 63.117.14.69 - - [30/Apr/2021:21:09:27 +0800] "GET / HTTP/1.1" 444 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36" 195.111.111.68 - - [30/Apr/2021:21:09:28 +0800] "GET /admin/login.asp HTTP/1.1" 444 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36" 98.124.44.196 - - [30/Apr/2021:21:19:28 +0800] "GET /:443 HTTP/1.1" 444 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36" 128.14.133.58 - - [30/Apr/2021:21:25:18 +0800] "GET / HTTP/1.1" 444 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36" 64.246.133.4 - - [30/Apr/2021:21:27:28 +0800] "GET /:443 HTTP/1.1" 444 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36" 24.220.112.166 - - [30/Apr/2021:21:43:28 +0800] "GET /admin/login.asp HTTP/1.1" 444 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36" 64.53.1.196 - - [30/Apr/2021:21:47:29 +0800] "GET /admin/login.asp HTTP/1.1" 444 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36" '; 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