Regular Expressions 101

Save & Share

Flavor

  • PCRE2 (PHP)
  • ECMAScript (JavaScript)
  • Python
  • Golang
  • Java
  • .NET 7.0 (C#)
  • Rust
  • PCRE (Legacy)
  • Regex Flavor Guide

Function

  • Match
  • Substitution
  • List
  • Unit Tests
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]
  • Character class intersection
    [\w&&[^\d]]
  • 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
Processing...

Test String

Code Generator

Generated Code

#include <StringConstants.au3> ; to declare the Constants of StringRegExp #include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate Local $sRegex = "(?:\<intent\-filter\>)(\n|\s|\w|\W|\b|\B|.)*?(?:\<\/intent\-filter\>)" Local $sString = "<?xml version="1.0" encoding="utf-8"?>" & @CRLF & _ "<manifest" & @CRLF & _ " xmlns:android="http://schemas.android.com/apk/res/android"" & @CRLF & _ " android:versionCode="27"" & @CRLF & _ " android:versionName="3.3.1"" & @CRLF & _ " compileSdkVersion="28"" & @CRLF & _ " compileSdkVersionCodename="9"" & @CRLF & _ " package="xyz.omnicron.caffeinate"" & @CRLF & _ " platformBuildVersionCode="27"" & @CRLF & _ " platformBuildVersionName="3.3.1">" & @CRLF & _ " <uses-sdk" & @CRLF & _ " android:minSdkVersion="24"" & @CRLF & _ " android:targetSdkVersion="28"/>" & @CRLF & _ " <uses-permission" & @CRLF & _ " android:name="android.permission.WAKE_LOCK"/>" & @CRLF & _ " <uses-permission" & @CRLF & _ " android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>" & @CRLF & _ " <uses-permission" & @CRLF & _ " android:name="android.permission.ACCESS_NOTIFICATION_POLICY"/>" & @CRLF & _ " <uses-permission" & @CRLF & _ " android:name="android.permission.FOREGROUND_SERVICE"/>" & @CRLF & _ " <uses-permission" & @CRLF & _ " android:name="android.permission.INTERNET"/>" & @CRLF & _ " <uses-permission" & @CRLF & _ " android:name="android.permission.ACCESS_NETWORK_STATE"/>" & @CRLF & _ " <uses-permission" & @CRLF & _ " android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE"/>" & @CRLF & _ " <uses-permission" & @CRLF & _ " android:name="com.google.android.c2dm.permission.RECEIVE"/>" & @CRLF & _ " <permission" & @CRLF & _ " android:name="xyz.omnicron.caffeinate.permission.C2D_MESSAGE"" & @CRLF & _ " android:protectionLevel="signature"/>" & @CRLF & _ " <uses-permission" & @CRLF & _ " android:name="xyz.omnicron.caffeinate.permission.C2D_MESSAGE"/>" & @CRLF & _ " <application" & @CRLF & _ " android:theme="@2131755014"" & @CRLF & _ " android:label="@2131689511"" & @CRLF & _ " android:icon="@2131623936"" & @CRLF & _ " android:name="xyz.omnicron.caffeinate.Caffeine"" & @CRLF & _ " allowBackup="true"" & @CRLF & _ " supportsRtl="true"" & @CRLF & _ " appComponentFactory="android.support.v4.app.CoreComponentFactory">" & @CRLF & _ " <activity" & @CRLF & _ " android:name="xyz.omnicron.caffeinate.MainActivity">" & @CRLF & _ " <intent-filter>" & @CRLF & _ " <action" & @CRLF & _ " android:name="android.intent.action.MAIN"/>" & @CRLF & _ " <category" & @CRLF & _ " android:name="android.intent.category.LAUNCHER"/>" & @CRLF & _ " </intent-filter>" & @CRLF & _ " </activity>" & @CRLF & _ " <receiver" & @CRLF & _ " android:name="xyz.omnicron.caffeinate.ActionReceiver"" & @CRLF & _ " android:exported="true">" & @CRLF & _ " <intent-filter>" & @CRLF & _ " <action" & @CRLF & _ " android:name="xyz.omnicron.caffeinate.STOP_ACTION"/>" & @CRLF & _ " </intent-filter>" & @CRLF & _ " </receiver>" & @CRLF & _ " <service" & @CRLF & _ " android:label="@2131689514"" & @CRLF & _ " android:icon="@2131230861"" & @CRLF & _ " android:name="xyz.omnicron.caffeinate.services.CaffeinateTileService"" & @CRLF & _ " android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">" & @CRLF & _ " <meta-data" & @CRLF & _ " android:name="android.service.quicksettings.ACTIVE_TILE"" & @CRLF & _ " android:value="false"/>" & @CRLF & _ " <intent-filter>" & @CRLF & _ " <action" & @CRLF & _ " android:name="android.service.quicksettings.action.QS_TILE"/>" & @CRLF & _ " </intent-filter>" & @CRLF & _ " </service>" & @CRLF & _ " <service" & @CRLF & _ " android:label="@2131689583"" & @CRLF & _ " android:icon="@2131230858"" & @CRLF & _ " android:name="xyz.omnicron.caffeinate.services.SoundProfileTileService"" & @CRLF & _ " android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">" & @CRLF & _ " <meta-data" & @CRLF & _ " android:name="android.service.quicksettings.ACTIVE_TILE"" & @CRLF & _ " android:value="true"/>" & @CRLF & _ " <intent-filter>" & @CRLF & _ " <action" & @CRLF & _ " android:name="android.service.quicksettings.action.QS_TILE"/>" & @CRLF & _ " </intent-filter>" & @CRLF & _ " </service>" & @CRLF & _ " <service" & @CRLF & _ " android:name="xyz.omnicron.caffeinate.services.CaffeinationService"" & @CRLF & _ " android:exported="false"/>" & @CRLF & _ " <activity" & @CRLF & _ " android:label="@2131689585"" & @CRLF & _ " android:name="xyz.omnicron.caffeinate.SettingsActivity"/>" & @CRLF & _ " <activity" & @CRLF & _ " android:label="A/B Testing Debug Screen"" & @CRLF & _ " android:name="xyz.omnicron.caffeinate.ABTestingDebugActivity">" & @CRLF & _ " <intent-filter>" & @CRLF & _ " <action" & @CRLF & _ " android:name="xyz.omnicron.caffeinate.ABTestingDebugActivity"/>" & @CRLF & _ " <category" & @CRLF & _ " android:name="android.intent.category.DEFAULT"/>" & @CRLF & _ " </intent-filter>" & @CRLF & _ " </activity>" & @CRLF & _ " <activity" & @CRLF & _ " android:theme="@2131755016"" & @CRLF & _ " android:label="@2131689584"" & @CRLF & _ " android:name="xyz.omnicron.caffeinate.CreditsActivity"/>" & @CRLF & _ " <service" & @CRLF & _ " android:name="com.google.firebase.components.ComponentDiscoveryService">" & @CRLF & _ " <meta-data" & @CRLF & _ " android:name="com.google.firebase.components:com.google.firebase.firestore.FirestoreRegistrar"" & @CRLF & _ " android:value="com.google.firebase.components.ComponentRegistrar"/>" & @CRLF & _ " <meta-data" & @CRLF & _ " android:name="com.google.firebase.components:com.google.firebase.analytics.connector.internal.AnalyticsConnectorRegistrar"" & @CRLF & _ " android:value="com.google.firebase.components.ComponentRegistrar"/>" & @CRLF & _ " <meta-data" & @CRLF & _ " android:name="com.google.firebase.components:com.google.firebase.iid.Registrar"" & @CRLF & _ " android:value="com.google.firebase.components.ComponentRegistrar"/>" & @CRLF & _ " </service>" & @CRLF & _ " <receiver" & @CRLF & _ " android:name="com.google.android.gms.measurement.AppMeasurementReceiver"" & @CRLF & _ " android:enabled="true"" & @CRLF & _ " android:exported="false"/>" & @CRLF & _ " <receiver" & @CRLF & _ " android:name="com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver"" & @CRLF & _ " android:permission="android.permission.INSTALL_PACKAGES"" & @CRLF & _ " android:enabled="true"" & @CRLF & _ " android:exported="true">" & @CRLF & _ " <intent-filter>" & @CRLF & _ " <action" & @CRLF & _ " android:name="com.android.vending.INSTALL_REFERRER"/>" & @CRLF & _ " </intent-filter>" & @CRLF & _ " </receiver>" & @CRLF & _ " <service" & @CRLF & _ " android:name="com.google.android.gms.measurement.AppMeasurementService"" & @CRLF & _ " android:enabled="true"" & @CRLF & _ " android:exported="false"/>" & @CRLF & _ " <service" & @CRLF & _ " android:name="com.google.android.gms.measurement.AppMeasurementJobService"" & @CRLF & _ " android:permission="android.permission.BIND_JOB_SERVICE"" & @CRLF & _ " android:enabled="true"" & @CRLF & _ " android:exported="false"/>" & @CRLF & _ " <receiver" & @CRLF & _ " android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver"" & @CRLF & _ " android:permission="com.google.android.c2dm.permission.SEND"" & @CRLF & _ " android:exported="true">" & @CRLF & _ " <intent-filter>" & @CRLF & _ " <action" & @CRLF & _ " android:name="com.google.android.c2dm.intent.RECEIVE"/>" & @CRLF & _ " <category" & @CRLF & _ " android:name="xyz.omnicron.caffeinate"/>" & @CRLF & _ " </intent-filter>" & @CRLF & _ " </receiver>" & @CRLF & _ " <service" & @CRLF & _ " android:name="com.google.firebase.iid.FirebaseInstanceIdService"" & @CRLF & _ " android:exported="true">" & @CRLF & _ " <intent-filter" & @CRLF & _ " android:priority="-500">" & @CRLF & _ " <action" & @CRLF & _ " android:name="com.google.firebase.INSTANCE_ID_EVENT"/>" & @CRLF & _ " </intent-filter>" & @CRLF & _ " </service>" & @CRLF & _ " <activity" & @CRLF & _ " android:theme="@16973840"" & @CRLF & _ " android:name="com.google.android.gms.common.api.GoogleApiActivity"" & @CRLF & _ " android:exported="false"/>" & @CRLF & _ " <provider" & @CRLF & _ " android:name="com.google.firebase.provider.FirebaseInitProvider"" & @CRLF & _ " android:exported="false"" & @CRLF & _ " android:authorities="xyz.omnicron.caffeinate.firebaseinitprovider"" & @CRLF & _ " android:initOrder="100"/>" & @CRLF & _ " <meta-data" & @CRLF & _ " android:name="com.google.android.gms.version"" & @CRLF & _ " android:value="@2131361800"/>" & @CRLF & _ " </application>" & @CRLF & _ "</manifest>" & @CRLF & _ "" Local $aArray = StringRegExp($sString, $sRegex, $STR_REGEXPARRAYGLOBALFULLMATCH) Local $aFullArray[0] For $i = 0 To UBound($aArray) -1 _ArrayConcatenate($aFullArray, $aArray[$i]) Next $aArray = $aFullArray ; Present the entire match result _ArrayDisplay($aArray, "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 AutoIt, please visit: https://www.autoitscript.com/autoit3/docs/functions/StringRegExp.htm