Match Characters that Occur Zero or More Times
- The last challenge used the plus
+sign to look for characters that occur one or more times. There's also an option that matches characters that occur zero or more times. - The character to do this is the asterisk or star: *.
- For this post,
chewieQuotehas been initialized as the stringAaaaaaaaaaaaaaaarrrgh!Let's Create a regexchewieRegexthat uses the*character to match an uppercaseAcharacter immediately followed by zero or more lowercaseacharacters inchewieQuote. Your regex does not need flags or character classes, and it should not match any of the other quotes.
let chewieQuote = "Aaaaaaaaaaaaaaaarrrgh!";
let chewieRegex = /Aa*/;
let result = chewieQuote.match(chewieRegex);
console.log(result); will display [ 'Aaaaaaaaaaaaaaaa' ]
Find Characters with Lazy Matching
- In regular expressions, a greedy match finds the longest possible part of a string that fits the regex pattern and returns it as a match. The alternative is called a lazy match, which finds the smallest possible part of the string that satisfies the regex pattern.
- You can apply the regex
/t[a-z]*i/to the string"titanic". This regex is basically a pattern that starts witht, ends withi, and has some letters in between. - Regular expressions are by default greedy, so the match would return
["titani"]. It finds the largest sub-string possible to fit the pattern. However, you can use the
?character to change it to lazy matching."titanic"matched against the adjusted regex of/t[a-z]*?i/returns["ti"].Let's Fix the regex
/<.*>/to return the HTML tag<h1>and not the text"<h1>Winter is coming</h1>".Remember the wildcard
.in a regular expression matches any character.
let text = "<h1>Winter is coming</h1>";
let myRegex = /<.*>/; // Change this line
let result = text.match(myRegex);
- Answer:
let text = "<h1>Winter is coming</h1>";
let myRegex = /<.*?>/;
let result = text.match(myRegex);
console.log(result); will display [ "<h1>" ]
Top comments (1)
Hi! could please explain details how you arrived at this answer? Thank you.