ruby string match ignore case

ekynox picture ekynox · Dec 10, 2011 · Viewed 14k times · Source

I am trying to create a match query which selects text from a string between two words. I can't seem to figure out how to make the search case insensitive. For example consider the text:

contents = "cat
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec blandit feugiat mi, eu lacinia quam tincidunt eu. Donec eleifend adipiscing neque, in porta dolor vestibulum at. Curabitur id elit vitae nunc feugiat varius. Maecenas euismod euismod mi, eu blandit lectus.
dog"

the ruby code to return me the latin code between the words cat and dog is

contents.match(/cat(.*)dog/m)[1].strip

At the moment my "match" query only works if cat and dog are lowercase but I need to cater for if cat and dog are uppercase or the first letter is upper case.

Not quite sure where to stick the /i operator.

Answer

coder_tim picture coder_tim · Dec 10, 2011

Next to the "m":

contents.match(/cat(.*)dog/im)[1].strip