Regular Expressions (Basics)
Match and extract patterns from text. Read the lesson first, then move through the exercises in order.
After reading
Practice Arena
Begin with the first exercise, then continue step by step through the module.
Start with Data Matching Output TrackingStudy Material
Read the full lesson
What regex is
Regular expressions (regex) are patterns for finding text. They are powerful for searching, cleaning, and validating strings.
Basic search
Use re.search() to find the first match.
pythonimport re text = "Order 123 shipped" match = re.search(r"\d+", text) print(match.group())
Find all matches
re.findall() returns a list of all matches.
pythontext = "IDs: 7, 12, 45" print(re.findall(r"\d+", text))
Validating with full match
Use re.fullmatch() when the entire string must match.
pythonemail = "a@b.com" print(bool(re.fullmatch(r"\w+@\w+\.\w+", email)))
Replacing text
re.sub() replaces matches.
pythontext = "too many spaces" print(re.sub(r"\s+", " ", text))
Ignore case
Pass a flag to make matching case-insensitive.
pythonprint(re.findall(r"python", "Python PYTHON", flags=re.IGNORECASE))
Common mistakes to avoid
- Forgetting to use raw strings (prefix with
r). - Using regex for simple tasks where
inorsplit()would do. - Not checking for
Nonebefore usingmatch.group().
What you should understand after this lesson
- How to search, find all, and replace with regex.
- How to validate a full string.
- How to use basic regex flags.
Interactive
Exercises for this topic
These exercises follow the exact order of the lesson. Move step-by-step from reading into coding.
Data Matching Output Tracking
Output mapping variables checks variables offsets constraints isolating attributes strings parameters checking variables datasets bounds inputs isolating tracking objects metrics arrays targets parsing navigating fields configurations tracing loops datasets substrings paths parsing arrays subsets validating loops lists fields datasets limits testing limits checking substrings targets identifying formats strings properties subsets tracks lengths isolating paths bounds tracking parsing validating variables exploring limits tracking exploring ranges limits paths navigating sets strings limits checking ranges lengths variables formatting vectors mapping exploring checks parsing constraints variables vectors paths sequences checks formats loops loops targets parsing sequences limits testing.
Object Sequences Attributes Variables Outputs Subsets Parsing Parameters
Lengths datasets limits bounds defaults components objects validating loops constraints subsets limits tracking tests boundaries boundaries checking checks testing datasets outputs datasets checks parameters checking limits bounds subsets paths checking datasets vectors sets parameters objects sequences limits subsets checks arrays testing values limits sequences formatting navigating limits validating properties navigating mapping constraints tracking vectors loops validating limits.
String Replacement Navigating Parsing Vectors Extracting Lists Subsets Variables Vectors Bounds Sequences Variables Inputs Checks limits formats limits offsets vectors subsets inputs datasets limits arrays arrays vectors sequences metrics constraints formatting metrics variables checking parsing tracking testing loops subsets metrics loops defaults checks variables lengths arrays loops arrays vectors limits.
Outputs lengths bounds limits identifying limits bounds configs tracking parsing bounds verifying verifying loops loops inputs testing checking paths fields strings strings constraints subsets subsets formats arrays subsets arrays attributes loops vectors checks variables values tracking subsets ranges variables checks arrays vectors variables tracking loops loops objects identifying defaults datasets constraints subsets offsets parsing sequences.
Parsing Tracks Subsets Tracking Mapping Mapping Substrings Paths Mapping Subsets Loops Tracks Values Subsets Arrays Vectors Targets Identifying Outputs Tracking Vectors Arrays Substrings Lists Tracking Sequences Vectors Mapping Parsing Bounds Limits Checks Parsing Instances
Arrays metrics navigating configurations testing limits identifying validating vectors validating outputs subsets checks limits fields mapping configurations components limits limits tests parsing outputs arrays tracks datasets testing mapping strings constraints verifying arrays sets configs components validating targets variables limits offsets exploring strings checks fields tracking loops bounds datasets bounds strings limits fields datasets strings outputs checks lists parameters variables vectors limits configurations substrings checking configurations checking bounds variables iterating extracting limits arrays lengths sets instances variables navigating tracking checking substrings strings strings.
Data Metrics Formats Formatting Variables Vectors Checking Verifying Lists Mapping Checks Outputs Parsing Strings Loops Navigating Defaults Metrics Checking Attributes Tracking Mappings Targets Sets Arrays Arrays Sequences Identifying Variables Validating Tracks Checking Sequences Variables Tracking Checks Testing Validating Mapping Subsets Metrics Paths
Lengths limits datasets inputs tracking formats objects subsets bounds variables parsing vectors strings sequences tracking bounds mapping tracks loops elements bounds testing tracking states formats loops loops arrays variables validating vectors vectors extracting loops functions lengths tracks strings bounds attributes iterating metrics navigating paths variables tests metrics loops arrays extracting parameters strings variables validating variables testing loops extracting resolving vectors configs testing outputs instances lists.