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

/
/
ig

Test String

Code Generator

Generated Code

re = /('providers' => \[)([^[\]]*)(\n \],)/i str = '<?php return [ /* |-------------------------------------------------------------------------- | Application Environment |-------------------------------------------------------------------------- | | This value determines the "environment" your application is currently | running in. This may determine how you prefer to configure various | services your application utilizes. Set this in your ".env" file. | */ \'env\' => env(\'APP_ENV\', \'production\'), /* |-------------------------------------------------------------------------- | Application Debug Mode |-------------------------------------------------------------------------- | | When your application is in debug mode, detailed error messages with | stack traces will be shown on every error that occurs within your | application. If disabled, a simple generic error page is shown. | */ \'debug\' => env(\'APP_DEBUG\', false), /* |-------------------------------------------------------------------------- | Application URL |-------------------------------------------------------------------------- | | This URL is used by the console to properly generate URLs when using | the Artisan command line tool. You should set this to the root of | your application so that it is used when running Artisan tasks. | */ \'url\' => env(\'API_URL\', \'http://localhost\'), /* |-------------------------------------------------------------------------- | Application Timezone |-------------------------------------------------------------------------- | | Here you may specify the default timezone for your application, which | will be used by the PHP date and date-time functions. We have gone | ahead and set this to a sensible default for you out of the box. | */ \'timezone\' => \'CET\', /* |-------------------------------------------------------------------------- | Application Locale Configuration |-------------------------------------------------------------------------- | | The application locale determines the default locale that will be used | by the translation service provider. You are free to set this value | to any of the locales which will be supported by the application. | */ \'locale\' => \'fr\', /* |-------------------------------------------------------------------------- | Application Fallback Locale |-------------------------------------------------------------------------- | | The fallback locale determines the locale to use when the current one | is not available. You may change the value to correspond to any of | the language folders that are provided through your application. | */ \'fallback_locale\' => \'en\', /* |-------------------------------------------------------------------------- | Encryption Key |-------------------------------------------------------------------------- | | This key is used by the Illuminate encrypter service and should be set | to a random, 32 character string, otherwise these encrypted strings | will not be safe. Please do this before deploying an application! | */ \'key\' => env(\'APP_KEY\'), \'cipher\' => \'AES-256-CBC\', /* |-------------------------------------------------------------------------- | Logging Configuration |-------------------------------------------------------------------------- | | Here you may configure the log settings for your application. Out of | the box, Laravel uses the Monolog PHP logging library. This gives | you a variety of powerful log handlers / formatters to utilize. | | Available Settings: "single", "daily", "syslog", "errorlog" | */ \'log\' => env(\'APP_LOG\', \'single\'), /* |-------------------------------------------------------------------------- | Autoloaded Service Providers |-------------------------------------------------------------------------- | | The service providers listed here will be automatically loaded on the | request to your application. Feel free to add your own services to | this array to grant expanded functionality to your applications. | */ \'providers\' => [ /* * Laravel Framework Service Providers... */ Illuminate\\Auth\\AuthServiceProvider::class, Illuminate\\Broadcasting\\BroadcastServiceProvider::class, Illuminate\\Bus\\BusServiceProvider::class, Illuminate\\Cache\\CacheServiceProvider::class, Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider::class, Illuminate\\Cookie\\CookieServiceProvider::class, Illuminate\\Database\\DatabaseServiceProvider::class, Illuminate\\Encryption\\EncryptionServiceProvider::class, Illuminate\\Filesystem\\FilesystemServiceProvider::class, Illuminate\\Foundation\\Providers\\FoundationServiceProvider::class, Illuminate\\Hashing\\HashServiceProvider::class, Illuminate\\Mail\\MailServiceProvider::class, Illuminate\\Pagination\\PaginationServiceProvider::class, Illuminate\\Pipeline\\PipelineServiceProvider::class, Illuminate\\Queue\\QueueServiceProvider::class, Illuminate\\Redis\\RedisServiceProvider::class, Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider::class, Illuminate\\Session\\SessionServiceProvider::class, Illuminate\\Translation\\TranslationServiceProvider::class, Illuminate\\Validation\\ValidationServiceProvider::class, Illuminate\\View\\ViewServiceProvider::class, /* * Application Service Providers... */ App\\Providers\\AppServiceProvider::class, App\\Providers\\AuthServiceProvider::class, App\\Providers\\EventServiceProvider::class, App\\Providers\\RouteServiceProvider::class, ], /* |-------------------------------------------------------------------------- | Class Aliases |-------------------------------------------------------------------------- | | This array of class aliases will be registered when this application | is started. However, feel free to register as many as you wish as | the aliases are "lazy" loaded so they don\'t hinder performance. | */ \'aliases\' => [ \'App\' => Illuminate\\Support\\Facades\\App::class, \'Artisan\' => Illuminate\\Support\\Facades\\Artisan::class, \'Auth\' => Illuminate\\Support\\Facades\\Auth::class, \'Blade\' => Illuminate\\Support\\Facades\\Blade::class, \'Cache\' => Illuminate\\Support\\Facades\\Cache::class, \'Config\' => Illuminate\\Support\\Facades\\Config::class, \'Cookie\' => Illuminate\\Support\\Facades\\Cookie::class, \'Crypt\' => Illuminate\\Support\\Facades\\Crypt::class, \'DB\' => Illuminate\\Support\\Facades\\DB::class, \'Eloquent\' => Illuminate\\Database\\Eloquent\\Model::class, \'Event\' => Illuminate\\Support\\Facades\\Event::class, \'File\' => Illuminate\\Support\\Facades\\File::class, \'Gate\' => Illuminate\\Support\\Facades\\Gate::class, \'Hash\' => Illuminate\\Support\\Facades\\Hash::class, \'Lang\' => Illuminate\\Support\\Facades\\Lang::class, \'Log\' => Illuminate\\Support\\Facades\\Log::class, \'Mail\' => Illuminate\\Support\\Facades\\Mail::class, \'Password\' => Illuminate\\Support\\Facades\\Password::class, \'Queue\' => Illuminate\\Support\\Facades\\Queue::class, \'Redirect\' => Illuminate\\Support\\Facades\\Redirect::class, \'Redis\' => Illuminate\\Support\\Facades\\Redis::class, \'Request\' => Illuminate\\Support\\Facades\\Request::class, \'Response\' => Illuminate\\Support\\Facades\\Response::class, \'Route\' => Illuminate\\Support\\Facades\\Route::class, \'Schema\' => Illuminate\\Support\\Facades\\Schema::class, \'Session\' => Illuminate\\Support\\Facades\\Session::class, \'Storage\' => Illuminate\\Support\\Facades\\Storage::class, \'URL\' => Illuminate\\Support\\Facades\\URL::class, \'Validator\' => Illuminate\\Support\\Facades\\Validator::class, \'View\' => Illuminate\\Support\\Facades\\View::class, ], ]; ' # Print the match result str.scan(re) do |match| puts match.to_s end

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 Ruby, please visit: http://ruby-doc.org/core-2.2.0/Regexp.html