how to extract part of a sentence that ends in a word but only up to a certain amount of words to the left. regex re2

Viewed 36

I have the following regex https://regex101.com/r/6orbpa/1

^ho..ital\s+(?:(?:\b[a-zA-Z_']+\b)[ ]*){1,5}$

it extracts any senetence that starts with the word hospital OR hopital and only includes the sentence if it has up to 5 words to the right.

How do I modify the the regex to make it work from when the words ENDS in hospital OR hopital and includes up to 5 words to the left?

1 Answers

You can use

^(?:[a-zA-Z_']+ +){1,5}hos?pital$

See the regex demo. In case you are not using multiline texts, you may replace the literal space with \s in the pattern.

Details:

  • ^ - start of string
  • (?:[a-zA-Z_']+ +){1,5} - one to five occurrences of
    • [a-zA-Z_']+ - one or more letters, underscores or ' chars
    • + - one or more spaces
  • hos?pital - hospital or hopital
  • $ - end of string.
Related