Open
Description
Currently the lesson doesn't teach parentheses for grouping parts of the regular expression. I think it would be worth adding this to the metacharacters taught in episode 1 because:
- They are commonly used in building regular expressions
- The introduction about regular expressions says regex can be used for the following things that parentheses supports:
* Match patterns that repeat any number of times.
* Capture the parts of the original string that match your pattern.
- In episode 2, when searching for the phone number with area code given in parentheses, the solution says "
\(
escape character with the parenthesis as straightforward character match", but parentheses have not been presented as a special character in the lesson, so the need to escape them has not been pointed out.
If added to the content in episode 1, some options for adding the ()
into exercises:
- Exercise
Matching Dates
: "How would you match the date format dd-MM-yyyy?" could have a follow up of how to match that same pattern with a regular expression that includes parentheses, with a solution of\b(\d{2}-){2}\d{4}\b
- After the
Matching Dates
exercise, add one that would match both the pattern dd-MM-yyyy and MM-yyyy, with a solution of\b(\d{2}-){1,2}\d{4}\b
. - Exercise
Matching multiple date formats
: How would you match the date format dd-MM-yyyy or dd-MM-yy at the end of a line only? could give a solution in place of the current one that eliminates matching a 3 digit year as is currently given such as\b\d{2}-\d{2}-\d{2}(\d{2})?\b
. - After the phone number related challenges in episode 2, add another that asks for a regex that matches both formats of phone numbers (with/without country code and area code given in parentheses or with dash) with a solution somewhere along the lines of
(\+\d{1,3} ?|1-)?(\(\d{3}\)\s?|\d{3}-)\d{3}-\d{4}
If adding about the use of parentheses in regex is desired by others, I don't mind contributing this and integrating one (or more) of the exercise options suggested above (or some other exercise you want to suggest).
Metadata
Metadata
Assignees
Labels
No labels