- 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 string
Aaaaaaaaaaaaaaaarrrgh!Let's Create a regex
chewieRegexthat uses the
*character to match an uppercase
Acharacter immediately followed by zero or more lowercase
chewieQuote. 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' ]
- 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 with
t, ends with
i, 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
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);
let text = "<h1>Winter is coming</h1>"; let myRegex = /<.*?>/; let result = text.match(myRegex); console.log(result); will display [ "<h1>" ]