I'm looking for a regular expression that checks whether a string contains 2 specific words.
e.g. Whether the string contains rooster or hen.
I'm looking for a regular expression that checks whether a string contains 2 specific words.
e.g. Whether the string contains rooster or hen.
The expresssion to match rooster or hen as a complete word (i.e. not when they are part of a longer, different word):
\b(rooster|hen)\b
This is a safety measure to avoid false positives with partial matches.
The \b denotes a word boundary, which is the (zero-width) spot between a character in the range of "word characters" ([A-Za-z0-9_]) and any other character. In effect the above would:
"A chicken is either a rooster or a hen.""Chickens are either a roosters or hens." - but (rooster|hen) wouldAs a side note, to allow the plural, this would do: \b(roosters?|hens?)\b
I had a similar requirement but it should only contain a particular word (from a list) and no other words should be present in the string. I had to use ^(rooster|hen)$
You didn't mention what engine/language you're using, but in general, the regular expression would be (rooster|hen). | is the alternation operator.
the thing that worked for me is
(?:word|anotheer word)
here an example of using I used it in my application http://regexr.com/3gjb2
if you are interested in understanding how (?: is diff from ( check this question