This AHK Webinar focused on Regular Expressions.
AutoHotkey Webinar Videos
Video of Hour One
Video of Hour two
Content from AutoHotkey Webinar
- “Symbols that describe a text pattern”
- Pattern matching- Chances are extremely high that you’re familiar with this.
- Using * or ? when looking for a file in Windows Explorer
- Validate format ( email, phone number, zip code, two-letter state abbreviation)
- Search & replace text in files
- Count # of times pattern exists
- Find duplicate words
When to use RegEx vs. other functions like StrReplace(), InStr()
- When Haystack is smaller- probably doesn’t matter
- StrReplace() and InStr() are faster than RegEx but simpler
General rule-of-thumb: Use RegEx when your pattern is more complex
RegExMatch vs. RegEx Replace
There is definitely overlap between the two tools however here is a high-level view of their “niche” areas & important their differences:
- Tool for finding, saving & extracting specific matches
- Once your match is found, RegExMatch has done it’s job and stops processing. To continue you need to restart beginning where your last match was found
- Does NOT affect original data
- Returns found position
- O) Match pattern can be returned as an object/pseudo array for easy access
- Modification tool allows you to change (re-order/structure, swap out) your data
- Does not stop after finding first match. Unless otherwise stipulated it proceeds through the entire haystack
- Returns Newstring:= (altered) string
Common / Helpful RegEx Options
- m) Multiline (treats each line as separate text)
- U) Ungreedy (stops at first match)
- x) Ignore whitespace (great for multiline RegEx)
- C) Auto-callout mode (help show where you are in your Expression)
- O) (in RegExMatch) returns match in object
- * 0 or more times
- ? 0 or 1 times
- + 1 or more times
- {N} exactly N times
- {N,} N or more times
- {N,M} N through M times
Characters Needing Escape
- \ . * ? + [ { | ( ) ^ $”
Ranges
- [1-5], [a-e]
Special Characters
- ^ Start of Line
- $ End of Line
- . Any character
Escapes
- \d Digit \D Non-digit
- \s Whitespace \S Non-whitespace
- \w “Word“ \W Non-“Word”
- \n New Line \t Tab
- \r Line Return \b Boundary
- \QLiteral\E
- \x where x is Hex \x22=“
Regular Expression Resources
AutoHotkey Help
- RegEx Match
- RegEx Replace
- Quick Reference
- Forum thread for RegEx Questions
- RegEx tutorial by sinkfaze
- RegEx tutorial videos by Joe Glines
Tools Built in AutoHotkey
- Expressive by Alguimist
- Regex Tester by Robert Ryan
- RegEx Tester by goralf
- LiveRegexTester by njciancio
Websites to test dynamic code
Additional Resources
- RegEx Buddy
- RegEx Coach
- Lyna.com course Using Regular Expressions by Kevin Skoglund
- Introduction to Regular Expressions in AutoHotkey By Jack Dunning
- Mastering Regular Expressions by Jeffrey Friedl
Check out more AutoHotkey webinars
Sign-up for future ones here