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
No Match

`
`
gm

Test String

Code Generator

Generated Code

using System; using System.Text.RegularExpressions; public class Example { public static void Main() { string pattern = @"(?m)(.?aws/credentials$|.?chef/(.*).pem$|.?gem/credentials$|.?irssi/config$|.?purple/accounts.xml$|.?recon-ng/keys.db$|.?ssh/config$|.?xchat2?/servlist_?.conf$|.agilekeychain$|.asc$|.bek$|.cscfg$|.dayone$|.exports|.extra|.functions|.fve$|.gnucash$|.jks$|.keychain$|.kwallet$|.log$|.mdf$|.ovpn$|.p12$|.pcap$|.pem$|.pfx$|.pkcs12$|.psafe3$|.rdp$|.sdf$|.sqlite$|.tblk$|.tpm$|Favorites.plist|LocalSettings.php|^(.|_)?netrc$|^.*_dsa$|^.*_ecdsa$|^.*_ed25519$|^.*_rsa$|^.?(bash_|zsh_)?aliases$|^.?(bash_|zsh_)?profile$|^.?(bash_|zsh_|sh_|z)?history$|^.?(bash|zsh|csh)rc$|^.?dbeaver-data-sources.xml$|^.?dockercfg$|^.?env$|^.?git-credentials$|^.?gitconfig$|^.?gitrobrc$|^.?htpasswd$|^.?irb_history$|^.?muttrc$|^.?mysql_history$|^.?npmrc$|^.?pgpass$|^.?psql_history$|^.?s3cfg$|^.?trc$|^.?tugboat$|^kdbx?$|^key(pair)?$|^key(store|ring)$|^sftp-config(.json)?$|^sql(dump)?$|carrierwave.rb|config(.inc)?.php$|config/hub$|configuration.user.xpl|credential|credentials.xml|database.yml|doctl/config.yaml$|etc/passwd$|etc/shadow$|filezilla.xml|jenkins.plugins.publish_over_ssh.BapSshPublisherPlugin.xml|journal.txt|knife.rb|omniauth.rb|otr.private_key|password|proftpdpasswd|recentservers.xml|robomongo.json|secret_token.rb|settings.py|terraform.tfvars|ventrilo_srv.ini)"; string input = @".agilekeychain .asc .bek .cscfg .dayone .dockercfg .exports .extra .functions .fve .gitconfig .gitrobrc .gnucash .history .irb_history .irssi/config .jks .keychain .kwallet .log .mdf .mysql_history .ovpn .p12 .pcap .pem .pfx .pkcs12 .psafe3 .rdp .s3cfg .sdf .sqlite .tblk .tpm .trc .xchat/servlist.conf .zshrc 0jbW2b2LzqRm7as9UlgQikgcOcRWeSdz7CCvpNQF/Z3kYXUwQRWD1FT_ed25519 Favorites.plist FkVtMdR9WVKm_ecdsa FzimMIicXOStv1VUKm-6ZPnJZJigplLKHXaVGgtsuhdDX_dsa Jjc9SMBOYISTlW0TRDX_Tv5QpBsj2tRqP3v1DZNgTLtFnd1UnrX/a4zffCjsJuVvDUYK4_rsa LocalSettings.php _netrc bash_profile carrierwave.rb chef/8LJ2KnUxkalst.pem config.inc.php configuration.user.xpl credentials.xml database.yml dbeaver-data-sources.xml doctl/config.yaml env filezilla.xml git-credentials htpasswd jenkins.plugins.publish_over_ssh.BapSshPublisherPlugin.xml journal.txt kdbx keypair keyring knife.rb muttrc npmrc omniauth.rb otr.private_key pgpass proftpdpasswd psql_history purple/accounts.xml recentservers.xml recon-ng/keys.db robomongo.json secret_token.rb settings.py sftp-config sqldump terraform.tfvars tugboat ventrilo_srv.ini zsh_aliases"; RegexOptions options = RegexOptions.Multiline; foreach (Match m in Regex.Matches(input, pattern, options)) { Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index); } } }

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 C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx