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

/
/
gms

Test String

Substitution

Processing...

Code Generator

Generated Code

import Foundation let pattern = #"CREATE TABLE \[dbo\]\.\[[\w\-_]+_(?:Australia|Cesky|Deutsch|English|EnglishInternational|Francais|Italian|Nederlands|Polish|Romanian|Russian|Spanish|USEnglish|USFrench)\].+?\)\;\s"# let regex = try! NSRegularExpression(pattern: pattern, options: [.anchorsMatchLines, .dotMatchesLineSeparators]) let testString = #""" CREATE TABLE [dbo].[ASVersion] ( [Attribute] [NVARCHAR](255) NOT NULL , [Value] [NVARCHAR](255) NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([Attribute]) ); CREATE TABLE [dbo].[INFO] ( [Short] [NVARCHAR](50) NOT NULL , [Long] [NVARCHAR](MAX) NULL , [Status] [NVARCHAR](255) NULL , [CountrificationInfo] [NVARCHAR](255) NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([Short]) ); CREATE TABLE [dbo].[INFOSTATUS] ( [Key] [INT] NOT NULL IDENTITY(0,1) , [Statusname] [NVARCHAR](50) NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([Key]) ); CREATE TABLE [dbo].[InfoTableRelations] ( [Key] [INT] NOT NULL IDENTITY(0,1) , [TableName] [NVARCHAR](255) NULL , [ColumnName] [NVARCHAR](255) NULL , [TypeProperty] [NVARCHAR](255) NULL , [ReferToDB] [NVARCHAR](255) NULL , [ReferToTable] [NVARCHAR](255) NULL , [ReferToBindedColumn] [NVARCHAR](255) NULL , [ReferToDisplayedColumn] [NVARCHAR](255) NULL , [PropertyValue] [NVARCHAR](255) NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([Key]) ); CREATE TABLE [dbo].[InfoTableRelations_AddIn] ( [Key] [INT] NOT NULL IDENTITY(0,1) , [TableName] [NVARCHAR](255) NULL , [ColumnName] [NVARCHAR](255) NULL , [TypeProperty] [NVARCHAR](255) NULL , [ReferToDB] [NVARCHAR](255) NULL , [ReferToTable] [NVARCHAR](255) NULL , [ReferToBindedColumn] [NVARCHAR](255) NULL , [ReferToDisplayedColumn] [NVARCHAR](255) NULL , [PropertyValue] [NVARCHAR](255) NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([Key]) ); CREATE TABLE [dbo].[PreferredSizesCategories] ( [ID] [INT] NOT NULL , [RunName] [NVARCHAR](255) NULL , [Deutsch] [NVARCHAR](50) NULL , [English] [NVARCHAR](50) NULL , [Nederlands] [NVARCHAR](50) NULL , [Francais] [NVARCHAR](50) NULL , [Cesky] [NVARCHAR](50) NULL , [Russian] [NVARCHAR](50) NULL , [Polish] [NVARCHAR](50) NULL , [USFrench] [NVARCHAR](50) NULL , [USEnglish] [NVARCHAR](50) NULL , [EnglishInternational] [NVARCHAR](50) NULL , [Spanish] [NVARCHAR](50) NULL , [Italian] [NVARCHAR](50) NULL , [Chinese] [NVARCHAR](50) NULL , [Japanese] [NVARCHAR](50) NULL , [Greek] [NVARCHAR](50) NULL , [SouthAfrica] [NVARCHAR](50) NULL , [Portuguese] [NVARCHAR](50) NULL , [Indian] [NVARCHAR](50) NULL , [Romanian] [NVARCHAR](50) NULL , [SpanishAmericas] [NVARCHAR](50) NULL , [Hungarian] [NVARCHAR](50) NULL , [TraditionalChinese] [NVARCHAR](255) NULL , [Bulgarian] [NVARCHAR](255) NULL , [Turkish] [NVARCHAR](255) NULL , [BrazilPortuguese] [NVARCHAR](255) NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([ID]) ); CREATE TABLE [dbo].[PreferredSizesCategoriesAssignment] ( [TypeID] [INT] NOT NULL , [CategoryID] [INT] NOT NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([TypeID], [CategoryID]) ); CREATE TABLE [dbo].[PreferredSizesGroupBy] ( [TableID] [INT] NOT NULL , [ColumnName] [NVARCHAR](255) NULL , [GroupByTableID] [INT] NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([TableID]) ); CREATE TABLE [dbo].[PreferredSizesItems] ( [TypeID] [INT] NOT NULL , [CategoryID] [INT] NOT NULL , [ProfileID] [INT] NOT NULL , [TableID] [INT] NOT NULL , [KeyValue] [NVARCHAR](255) NOT NULL , [MasterTableID] [INT] NOT NULL , [MasterKeyValue] [NVARCHAR](255) NOT NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([TypeID], [CategoryID], [ProfileID], [TableID], [KeyValue], [MasterTableID], [MasterKeyValue]) ); CREATE TABLE [dbo].[PreferredSizesItems_Australia] ( [TypeID] [INT] NOT NULL , [CategoryID] [INT] NOT NULL , [ProfileID] [INT] NOT NULL , [TableID] [INT] NOT NULL , [KeyValue] [NVARCHAR](255) NOT NULL , [MasterTableID] [INT] NOT NULL , [MasterKeyValue] [NVARCHAR](255) NOT NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([TypeID], [CategoryID], [ProfileID], [TableID], [KeyValue], [MasterTableID], [MasterKeyValue]) ); CREATE TABLE [dbo].[PreferredSizesItems_Cesky] ( [TypeID] [INT] NOT NULL , [CategoryID] [INT] NOT NULL , [ProfileID] [INT] NOT NULL , [TableID] [INT] NOT NULL , [KeyValue] [NVARCHAR](255) NOT NULL , [MasterTableID] [INT] NOT NULL , [MasterKeyValue] [NVARCHAR](255) NOT NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([TypeID], [CategoryID], [ProfileID], [TableID], [KeyValue], [MasterTableID], [MasterKeyValue]) ); CREATE TABLE [dbo].[PreferredSizesItems_Deutsch] ( [TypeID] [INT] NOT NULL , [CategoryID] [INT] NOT NULL , [ProfileID] [INT] NOT NULL , [TableID] [INT] NOT NULL , [KeyValue] [NVARCHAR](255) NOT NULL , [MasterTableID] [INT] NOT NULL , [MasterKeyValue] [NVARCHAR](255) NOT NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([TypeID], [CategoryID], [ProfileID], [TableID], [KeyValue], [MasterTableID], [MasterKeyValue]) ); CREATE TABLE [dbo].[PreferredSizesItems_English] ( [TypeID] [INT] NOT NULL , [CategoryID] [INT] NOT NULL , [ProfileID] [INT] NOT NULL , [TableID] [INT] NOT NULL , [KeyValue] [NVARCHAR](255) NOT NULL , [MasterTableID] [INT] NOT NULL , [MasterKeyValue] [NVARCHAR](255) NOT NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([TypeID], [CategoryID], [ProfileID], [TableID], [KeyValue], [MasterTableID], [MasterKeyValue]) ); CREATE TABLE [dbo].[PreferredSizesItems_EnglishInternational] ( [TypeID] [INT] NOT NULL , [CategoryID] [INT] NOT NULL , [ProfileID] [INT] NOT NULL , [TableID] [INT] NOT NULL , [KeyValue] [NVARCHAR](255) NOT NULL , [MasterTableID] [INT] NOT NULL , [MasterKeyValue] [NVARCHAR](255) NOT NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([TypeID], [CategoryID], [ProfileID], [TableID], [KeyValue], [MasterTableID], [MasterKeyValue]) ); CREATE TABLE [dbo].[PreferredSizesItems_Francais] ( [TypeID] [INT] NOT NULL , [CategoryID] [INT] NOT NULL , [ProfileID] [INT] NOT NULL , [TableID] [INT] NOT NULL , [KeyValue] [NVARCHAR](255) NOT NULL , [MasterTableID] [INT] NOT NULL , [MasterKeyValue] [NVARCHAR](255) NOT NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([TypeID], [CategoryID], [ProfileID], [TableID], [KeyValue], [MasterTableID], [MasterKeyValue]) ); CREATE TABLE [dbo].[PreferredSizesItems_Italian] ( [TypeID] [INT] NOT NULL , [CategoryID] [INT] NOT NULL , [ProfileID] [INT] NOT NULL , [TableID] [INT] NOT NULL , [KeyValue] [NVARCHAR](255) NOT NULL , [MasterTableID] [INT] NOT NULL , [MasterKeyValue] [NVARCHAR](255) NOT NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([TypeID], [CategoryID], [ProfileID], [TableID], [KeyValue], [MasterTableID], [MasterKeyValue]) ); CREATE TABLE [dbo].[PreferredSizesItems_Nederlands] ( [TypeID] [INT] NOT NULL , [CategoryID] [INT] NOT NULL , [ProfileID] [INT] NOT NULL , [TableID] [INT] NOT NULL , [KeyValue] [NVARCHAR](255) NOT NULL , [MasterTableID] [INT] NOT NULL , [MasterKeyValue] [NVARCHAR](255) NOT NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([TypeID], [CategoryID], [ProfileID], [TableID], [KeyValue], [MasterTableID], [MasterKeyValue]) ); CREATE TABLE [dbo].[PreferredSizesItems_Polish] ( [TypeID] [INT] NOT NULL , [CategoryID] [INT] NOT NULL , [ProfileID] [INT] NOT NULL , [TableID] [INT] NOT NULL , [KeyValue] [NVARCHAR](255) NOT NULL , [MasterTableID] [INT] NOT NULL , [MasterKeyValue] [NVARCHAR](255) NOT NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([TypeID], [CategoryID], [ProfileID], [TableID], [KeyValue], [MasterTableID], [MasterKeyValue]) ); CREATE TABLE [dbo].[PreferredSizesItems_Romanian] ( [TypeID] [INT] NOT NULL , [CategoryID] [INT] NOT NULL , [ProfileID] [INT] NOT NULL , [TableID] [INT] NOT NULL , [KeyValue] [NVARCHAR](255) NOT NULL , [MasterTableID] [INT] NOT NULL , [MasterKeyValue] [NVARCHAR](255) NOT NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([TypeID], [CategoryID], [ProfileID], [TableID], [KeyValue], [MasterTableID], [MasterKeyValue]) ); CREATE TABLE [dbo].[PreferredSizesItems_Russian] ( [TypeID] [INT] NOT NULL , [CategoryID] [INT] NOT NULL , [ProfileID] [INT] NOT NULL , [TableID] [INT] NOT NULL , [KeyValue] [NVARCHAR](255) NOT NULL , [MasterTableID] [INT] NOT NULL , [MasterKeyValue] [NVARCHAR](255) NOT NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([TypeID], [CategoryID], [ProfileID], [TableID], [KeyValue], [MasterTableID], [MasterKeyValue]) ); CREATE TABLE [dbo].[PreferredSizesItems_USEnglish] ( [TypeID] [INT] NOT NULL , [CategoryID] [INT] NOT NULL , [ProfileID] [INT] NOT NULL , [TableID] [INT] NOT NULL , [KeyValue] [NVARCHAR](255) NOT NULL , [MasterTableID] [INT] NOT NULL , [MasterKeyValue] [NVARCHAR](255) NOT NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([TypeID], [CategoryID], [ProfileID], [TableID], [KeyValue], [MasterTableID], [MasterKeyValue]) ); CREATE TABLE [dbo].[PreferredSizesItems_USFrench] ( [TypeID] [INT] NOT NULL , [CategoryID] [INT] NOT NULL , [ProfileID] [INT] NOT NULL , [TableID] [INT] NOT NULL , [KeyValue] [NVARCHAR](255) NOT NULL , [MasterTableID] [INT] NOT NULL , [MasterKeyValue] [NVARCHAR](255) NOT NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([TypeID], [CategoryID], [ProfileID], [TableID], [KeyValue], [MasterTableID], [MasterKeyValue]) ); CREATE TABLE [dbo].[PreferredSizesProfiles] ( [ID] [INT] NOT NULL , [RunName] [NVARCHAR](50) NULL , [Country] [INT] NULL , [Selected] [BIT] NOT NULL , [Deutsch] [NVARCHAR](50) NULL , [English] [NVARCHAR](50) NULL , [Nederlands] [NVARCHAR](50) NULL , [Francais] [NVARCHAR](50) NULL , [Cesky] [NVARCHAR](50) NULL , [Russian] [NVARCHAR](50) NULL , [Polish] [NVARCHAR](50) NULL , [USFrench] [NVARCHAR](50) NULL , [USEnglish] [NVARCHAR](50) NULL , [EnglishInternational] [NVARCHAR](50) NULL , [Spanish] [NVARCHAR](50) NULL , [Italian] [NVARCHAR](50) NULL , [Chinese] [NVARCHAR](50) NULL , [Japanese] [NVARCHAR](50) NULL , [Greek] [NVARCHAR](50) NULL , [SouthAfrica] [NVARCHAR](50) NULL , [Portuguese] [NVARCHAR](50) NULL , [Indian] [NVARCHAR](50) NULL , [Romanian] [NVARCHAR](50) NULL , [SpanishAmericas] [NVARCHAR](50) NULL , [Hungarian] [NVARCHAR](50) NULL , [TraditionalChinese] [NVARCHAR](50) NULL , [Bulgarian] [NVARCHAR](50) NULL , [Turkish] [NVARCHAR](50) NULL , [BrazilPortuguese] [NVARCHAR](50) NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([ID]) ); CREATE TABLE [dbo].[PreferredSizesTables] ( [ID] [INT] NOT NULL , [TableName] [NVARCHAR](255) NULL , [DatabaseName] [NVARCHAR](255) NULL , [KeyColumnName] [NVARCHAR](255) NULL , [KeyColumnType] [NVARCHAR](255) NULL , [RunNameColumnName] [NVARCHAR](255) NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([ID]) ); CREATE TABLE [dbo].[PreferredSizesTablesRelations] ( [MasterTableID] [INT] NOT NULL , [SubTableID] [INT] NOT NULL , [MasterTableColumnName] [NVARCHAR](255) NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([MasterTableID], [SubTableID]) ); CREATE TABLE [dbo].[PreferredSizesTypes] ( [ID] [INT] NOT NULL , [RunName] [NVARCHAR](255) NULL , [Comment] [NVARCHAR](50) NULL , [Deutsch] [NVARCHAR](50) NULL , [English] [NVARCHAR](50) NULL , [Nederlands] [NVARCHAR](50) NULL , [Francais] [NVARCHAR](50) NULL , [Cesky] [NVARCHAR](50) NULL , [Russian] [NVARCHAR](50) NULL , [Polish] [NVARCHAR](50) NULL , [USFrench] [NVARCHAR](50) NULL , [USEnglish] [NVARCHAR](50) NULL , [EnglishInternational] [NVARCHAR](50) NULL , [Spanish] [NVARCHAR](50) NULL , [Italian] [NVARCHAR](50) NULL , [Chinese] [NVARCHAR](50) NULL , [Japanese] [NVARCHAR](50) NULL , [Greek] [NVARCHAR](50) NULL , [SouthAfrica] [NVARCHAR](50) NULL , [Portuguese] [NVARCHAR](50) NULL , [Indian] [NVARCHAR](50) NULL , [Romanian] [NVARCHAR](50) NULL , [SpanishAmericas] [NVARCHAR](50) NULL , [Hungarian] [NVARCHAR](50) NULL , [TraditionalChinese] [NVARCHAR](255) NULL , [Bulgarian] [NVARCHAR](255) NULL , [Turkish] [NVARCHAR](255) NULL , [BrazilPortuguese] [NVARCHAR](255) NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([ID]) ); CREATE TABLE [dbo].[PreferredSizesTypesRelations] ( [TypeID] [INT] NOT NULL , [TableID] [INT] NOT NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([TypeID], [TableID]) ); CREATE TABLE [dbo].[PreferredSizesTypeSubCategories] ( [TypeID] [INT] NOT NULL , [SubCategoryName] [NVARCHAR](50) NOT NULL , [Deutsch] [NVARCHAR](50) NULL , [English] [NVARCHAR](50) NULL , [Nederlands] [NVARCHAR](50) NULL , [Francais] [NVARCHAR](50) NULL , [Cesky] [NVARCHAR](50) NULL , [Russian] [NVARCHAR](50) NULL , [Polish] [NVARCHAR](50) NULL , [USFrench] [NVARCHAR](50) NULL , [USEnglish] [NVARCHAR](50) NULL , [EnglishInternational] [NVARCHAR](50) NULL , [Spanish] [NVARCHAR](50) NULL , [Italian] [NVARCHAR](50) NULL , [Chinese] [NVARCHAR](50) NULL , [Japanese] [NVARCHAR](50) NULL , [Greek] [NVARCHAR](50) NULL , [SouthAfrica] [NVARCHAR](50) NULL , [Portuguese] [NVARCHAR](50) NULL , [Indian] [NVARCHAR](50) NULL , [Romanian] [NVARCHAR](50) NULL , [SpanishAmericas] [NVARCHAR](50) NULL , [Hungarian] [NVARCHAR](50) NULL , [TraditionalChinese] [NVARCHAR](255) NULL , [Bulgarian] [NVARCHAR](50) NULL , [Turkish] [NVARCHAR](50) NULL , [BrazilPortuguese] [NVARCHAR](50) NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([TypeID], [SubCategoryName]) ); CREATE TABLE [dbo].[UpDateTable] ( [ID] [INT] NOT NULL , [DSN] [NVARCHAR](50) NULL , [SourceTable] [NVARCHAR](50) NULL , [TargetTable] [NVARCHAR](50) NULL , [forDelete] [BIT] NOT NULL , [copyTable] [BIT] NOT NULL , [CopyIfNotExist] [BIT] NOT NULL , CONSTRAINT [] PRIMARY KEY CLUSTERED ([ID]) ); """# let stringRange = NSRange(location: 0, length: testString.utf16.count) let substitutionString = #""# let result = regex.stringByReplacingMatches(in: testString, range: stringRange, withTemplate: substitutionString) print(result)

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 Swift 5.2, please visit: https://developer.apple.com/documentation/foundation/nsregularexpression