This video does a great job explaining introductory regular expressions:
| Character | Meaning | Example |
|---|---|---|
| * | Match zero, one or more of the previous | Ah* matches “Ahhhhh” or “A“ |
| ? | Match zero or one of the previous | Ah? matches “Al” or “Ah“ |
| + | Match one or more of the previous | Ah+ matches “Ah” or “Ahhh” but not “A“ |
| \ | Used to escape a special character | Hungry\? matches “Hungry?“ |
| . | Wildcard character, matches any character | do.* matches “dog“, “door“, “dot“, etc. |
| ( ) | Group characters | See example for | |
| [ ] | Matches a range of characters | [cbf]ar matches “car”, “bar”, or “far”[0-9]+ matches any positive integer[a-zA-Z] matches ascii letters a-z (uppercase and lower case)[^0-9] matches any character not 0-9. |
| | | Matche previous OR next character/group | (Mon)|(Tues)day matches “Monday” or “Tuesday” |
| { } | Matches a specified number of occurrences of the previous | [0-9]{3} matches “315” but not “31”[0-9]{2,4} matches “12”, “123”, and “1234”[0-9]{2,} matches “1234567…” |
| ^ | Beginning of a string. Or within a character range [] negation. |
^http matches strings that begin with http, such as a url.[^0-9] matches any character not 0-9. |
| $ | End of a string. | ing$ matches “exciting” but not “ingenious” |
Regex Exercises
- write a regex to test for any IP address (0.0.0.0 to 255.255.255.255)
- write a regex to test for any North American phone number