I'm a noob with regex.
I have to match literally different combinations of strings. Like in the example:
"feed the cat."
"feed the dog."
"feed the bear."
but NOT
"feed the eagle."
"feed the monkey."
"feed the donkey."
I tried something like /^feed the [cat|dog|bear].$/
but it doesn't work. The cheatsheet available on the net explain a lot of complicated things, but not how I can match several strings literally...
Thank you for the help.
$ means "Match the end of the string" (the position after the last character in the string). Both are called anchors and ensure that the entire string is matched instead of just a substring.
[] denotes a character class. () denotes a capturing group. [a-z0-9] -- One character that is in the range of a-z OR 0-9. (a-z0-9) -- Explicit capture of a-z0-9 .
(? i) makes the regex case insensitive. (? c) makes the regex case sensitive.
You're slightly confusing some syntax. Here's the correct pattern:
^feed the (cat|dog|bear)\.$
You can also use:
^feed the (?:cat|dog|bear)\.$
if you don't need to capture the animal name.
The square brackets are used for character classes, like [a-z]
which means "any lowercase letter between a and z, in ASCII".
Also, note that I escaped .
with \.
, because .
means "any character except newline" in regex.
You can try following regex,
feed the (cat|dog|bear)
Working Demo
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With