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

/
/
mg

Test String

Code Generator

Generated Code

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Example { public static void main(String[] args) { final String regex = "^\\s(?P<ValueType>\\w+)\\s(?P<DataType>\\w+)?\\s?Instance[\\.\\:](?P<Inheritance>\\w+) ?(?P<TagsOrArguments>.+)?"; final String string = "Class Instance [notbrowsable]\n" + " Property bool Instance.Archivable\n" + " Property string Instance.ClassName [readonly]\n" + " Property int Instance.DataCost [readonly] [RobloxPlaceSecurity]\n" + " Property string Instance.Name\n" + " Property Object Instance.Parent\n" + " Property bool Instance.RobloxLocked [PluginSecurity]\n" + " Property bool Instance.archivable [hidden]\n" + " Property string Instance.className [deprecated] [readonly]\n" + " Function void Instance:ClearAllChildren()\n" + " Function Instance Instance:Clone()\n" + " Function void Instance:Destroy()\n" + " Function Instance Instance:FindFirstChild(string name, bool recursive = false)\n" + " Function Objects Instance:GetChildren()\n" + " Function string Instance:GetDebugId(int scopeLength = 4) [notbrowsable] [PluginSecurity]\n" + " Function string Instance:GetFullName()\n" + " Function bool Instance:IsA(string className)\n" + " Function bool Instance:IsAncestorOf(Instance descendant)\n" + " Function bool Instance:IsDescendantOf(Instance ancestor)\n" + " Function void Instance:Remove() [deprecated]\n" + " Function Objects Instance:children() [deprecated]\n" + " Function Instance Instance:clone() [deprecated]\n" + " Function void Instance:destroy() [deprecated]\n" + " Function Instance Instance:findFirstChild(string name, bool recursive = false) [deprecated]\n" + " Function Objects Instance:getChildren() [deprecated]\n" + " Function bool Instance:isA(string className) [deprecated]\n" + " Function bool Instance:isDescendantOf(Instance ancestor) [deprecated]\n" + " Function void Instance:remove() [deprecated]\n" + " YieldFunction Instance Instance:WaitForChild(string childName)\n" + " Event Instance.AncestryChanged(Instance child, Instance parent)\n" + " Event Instance.Changed(Property property)\n" + " Event Instance.ChildAdded(Instance child)\n" + " Event Instance.ChildRemoved(Instance child)\n" + " Event Instance.DescendantAdded(Instance descendant)\n" + " Event Instance.DescendantRemoving(Instance descendant)\n" + " Event Instance.childAdded(Instance child) [deprecated]\n" + "Class Accoutrement : Instance\n" + " Property Vector3 Accoutrement.AttachmentForward\n" + " Property CoordinateFrame Accoutrement.AttachmentPoint\n" + " Property Vector3 Accoutrement.AttachmentPos\n" + " Property Vector3 Accoutrement.AttachmentRight\n" + " Property Vector3 Accoutrement.AttachmentUp\n" + "Class Hat : Accoutrement\n" + "Class AdService : Instance [notCreatable]\n" + " Function void AdService:ShowVideoAd()\n" + " Event AdService.VideoAdClosed()\n" + "Class AdvancedDragger : Instance\n" + "Class Animation : Instance\n" + " Property Content Animation.AnimationId\n" + "Class AnimationController : Instance\n" + " Function Array AnimationController:GetPlayingAnimationTracks()\n" + " Function Instance AnimationController:LoadAnimation(Instance animation)\n" + " Event AnimationController.AnimationPlayed(Instance animationTrack)\n" + "Class AnimationTrack : Instance\n" + " Property Object AnimationTrack.Animation [readonly]\n" + " Property bool AnimationTrack.IsPlaying [readonly]\n" + " Property float AnimationTrack.Length [readonly]\n" + " Property AnimationPriority AnimationTrack.Priority\n" + " Property float AnimationTrack.TimePosition\n" + " Function void AnimationTrack:AdjustSpeed(float speed = 1)\n" + " Function void AnimationTrack:AdjustWeight(float weight = 1, float fadeTime = 0.100000001)\n" + " Function double AnimationTrack:GetTimeOfKeyframe(string keyframeName)\n" + " Function void AnimationTrack:Play(float fadeTime = 0.100000001, float weight = 1, float speed = 1)\n" + " Function void AnimationTrack:Stop(float fadeTime = 0.100000001)\n" + " Event AnimationTrack.KeyframeReached(string keyframeName)\n" + " Event AnimationTrack.Stopped() [deprecated]\n" + "Class AnimationTrackState : Instance\n" + "Class Animator : Instance\n" + " Function Instance Animator:LoadAnimation(Instance animation)\n" + "Class AssetService : Instance\n" + " Function void AssetService:SetAssetRevertUrl(string revertUrl) [LocalUserSecurity]\n" + " Function void AssetService:SetAssetVersionsUrl(string versionsUrl) [LocalUserSecurity]\n" + " Function void AssetService:SetPlaceAccessUrl(string accessUrl) [LocalUserSecurity]\n" + " YieldFunction int AssetService:CreatePlaceAsync(string placeName, int templatePlaceID, string description = )\n" + " YieldFunction int AssetService:CreatePlaceInPlayerInventoryAsync(Instance player, string placeName, int templatePlaceID, string description = )\n" + " YieldFunction Dictionary AssetService:GetAssetVersions(int placeId, int pageNum = 1)\n" + " YieldFunction int AssetService:GetCreatorAssetID(int creationID)\n" + " YieldFunction Instance AssetService:GetGamePlacesAsync()\n" + " YieldFunction Dictionary AssetService:GetPlacePermissions(int placeId)\n" + " YieldFunction bool AssetService:RevertAsset(int placeId, int versionNumber)\n" + " YieldFunction void AssetService:SavePlaceAsync()\n" + " YieldFunction bool AssetService:SetPlacePermissions(int placeId, AccessType accessType = Everyone, Array inviteList = {})\n" + "Class BadgeService : Instance [notCreatable]\n" + " Function void BadgeService:SetAwardBadgeUrl(string url) [LocalUserSecurity]\n" + " Function void BadgeService:SetHasBadgeCooldown(int seconds) [LocalUserSecurity]\n" + " Function void BadgeService:SetHasBadgeUrl(string url) [LocalUserSecurity]\n" + " Function void BadgeService:SetIsBadgeDisabledUrl(string url) [LocalUserSecurity]\n" + " Function void BadgeService:SetIsBadgeLegalUrl(string url) [LocalUserSecurity]\n" + " Function void BadgeService:SetPlaceId(int placeId) [LocalUserSecurity]\n" + " YieldFunction bool BadgeService:AwardBadge(int userId, int badgeId)\n" + " YieldFunction bool BadgeService:IsDisabled(int badgeId)\n" + " YieldFunction bool BadgeService:IsLegal(int badgeId)\n" + " YieldFunction bool BadgeService:UserHasBadge(int userId, int badgeId)\n" + " Event BadgeService.BadgeAwarded(string message, int userId, int badgeId) [RobloxScriptSecurity]\n" + "Class BasePlayerGui : Instance\n" + "Class CoreGui : BasePlayerGui [notbrowsable] [notCreatable]\n" + " Property Object CoreGui.SelectionImageObject [RobloxScriptSecurity]\n" + " Property int CoreGui.Version [readonly]\n" + "Class PlayerGui : BasePlayerGui [notCreatable]\n" + " Property Object PlayerGui.SelectionImageObject\n" + " Function float PlayerGui:GetTopbarTransparency()\n" + " Function void PlayerGui:SetTopbarTransparency(float transparency)\n" + " Event PlayerGui.TopbarTransparencyChangedSignal(float transparency)\n" + "Class StarterGui : BasePlayerGui\n" + " Property bool StarterGui.ResetPlayerGuiOnSpawn\n" + " Property bool StarterGui.ShowDevelopmentGui\n" + " Function bool StarterGui:GetCoreGuiEnabled(CoreGuiType coreGuiType)\n" + " Function void StarterGui:RegisterGetCore(string parameterName, Function getFunction) [RobloxScriptSecurity]\n" + " Function void StarterGui:RegisterSetCore(string parameterName, Function setFunction) [RobloxScriptSecurity]\n" + " Function void StarterGui:SetCore(string parameterName, Variant value)\n" + " Function void StarterGui:SetCoreGuiEnabled(CoreGuiType coreGuiType, bool enabled)\n" + " YieldFunction Variant StarterGui:GetCore(string parameterName)\n" + " Event StarterGui.CoreGuiChangedSignal(CoreGuiType coreGuiType, bool enabled) [RobloxScriptSecurity]\n" + "Class BinaryStringValue : Instance\n" + "Class BindableEvent : Instance\n" + " Function void BindableEvent:Fire(Tuple arguments)\n" + " Event BindableEvent.Event(Tuple arguments)\n" + "Class BindableFunction : Instance\n" + " YieldFunction Tuple BindableFunction:Invoke(Tuple arguments)\n" + " Callback Tuple BindableFunction.OnInvoke(Tuple arguments)\n" + "Class BodyMover : Instance\n" + "Class BodyAngularVelocity : BodyMover\n" + " Property Vector3 BodyAngularVelocity.AngularVelocity\n" + " Property Vector3 BodyAngularVelocity.MaxTorque\n" + " Property float BodyAngularVelocity.P\n" + " Property Vector3 BodyAngularVelocity.angularvelocity\n" + " Property Vector3 BodyAngularVelocity.maxTorque\n" + "Class BodyForce : BodyMover\n" + " Property Vector3 BodyForce.Force\n" + " Property Vector3 BodyForce.force\n" + "Class BodyGyro : BodyMover\n" + " Property CoordinateFrame BodyGyro.CFrame\n" + " Property float BodyGyro.D\n" + " Property Vector3 BodyGyro.MaxTorque\n" + " Property float BodyGyro.P\n" + " Property CoordinateFrame BodyGyro.cframe [deprecated]\n" + " Property Vector3 BodyGyro.maxTorque [deprecated]\n" + "Class BodyPosition : BodyMover\n" + " Property float BodyPosition.D\n" + " Property Vector3 BodyPosition.MaxForce\n" + " Property float BodyPosition.P\n" + " Property Vector3 BodyPosition.Position\n" + " Property Vector3 BodyPosition.maxForce [deprecated]\n" + " Property Vector3 BodyPosition.position [deprecated]\n" + " Function Vector3 BodyPosition:GetLastForce()\n" + " Function Vector3 BodyPosition:lastForce() [deprecated]\n" + " Event BodyPosition.ReachedTarget()\n" + "Class BodyThrust : BodyMover\n" + " Property Vector3 BodyThrust.Force\n" + " Property Vector3 BodyThrust.Location\n" + " Property Vector3 BodyThrust.force [deprecated]\n" + " Property Vector3 BodyThrust.location [deprecated]\n" + "Class BodyVelocity : BodyMover\n" + " Property Vector3 BodyVelocity.MaxForce\n" + " Property float BodyVelocity.P\n" + " Property Vector3 BodyVelocity.Velocity\n" + " Property Vector3 BodyVelocity.maxForce [deprecated]\n" + " Property Vector3 BodyVelocity.velocity [deprecated]\n" + " Function Vector3 BodyVelocity:GetLastForce()\n" + " Function Vector3 BodyVelocity:lastForce()\n" + "Class RocketPropulsion : BodyMover\n" + " Property float RocketPropulsion.CartoonFactor\n" + " Property float RocketPropulsion.MaxSpeed\n" + " Property float RocketPropulsion.MaxThrust\n" + " Property Vector3 RocketPropulsion.MaxTorque\n" + " Property Object RocketPropulsion.Target\n" + " Property Vector3 RocketPropulsion.TargetOffset\n" + " Property float RocketPropulsion.TargetRadius\n" + " Property float RocketPropulsion.ThrustD\n" + " Property float RocketPropulsion.ThrustP\n" + " Property float RocketPropulsion.TurnD\n" + " Property float RocketPropulsion.TurnP\n" + " Function void RocketPropulsion:Abort()\n" + " Function void RocketPropulsion:Fire()\n" + " Function void RocketPropulsion:fire() [deprecated]\n" + " Event RocketPropulsion.ReachedTarget()\n" + "Class Test : Testing [readonly] [RobloxPlaceSecurity]\n" + " Property bool Testing.ReadOnlyAndSecure [readonly] [RobloxPlaceSecurity]"; final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE); final Matcher matcher = pattern.matcher(string); while (matcher.find()) { System.out.println("Full match: " + matcher.group(0)); for (int i = 1; i <= matcher.groupCount(); i++) { System.out.println("Group " + i + ": " + matcher.group(i)); } } } }

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 Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html