Skip to content
Advertisement

How to match multiple words in multiple lines

I have a multiline text, e.g.

word1 in line1
     word2 in line2
  word3 in line 3

I need to see if two words present in whole text (AND operator). I tried something like:

/^.*(?=.*word1)(?=.*word3).*$/gm

Advertisement

Answer

You can try this regex:

/^(?=[sS]*bword1b)(?=[sS]*bword3b)/
  • [sS] matches literally everything, encluding line wraps

  • b is the word bound, so word1 count but sword1 does not.

And since you treat all the lines as a whole, you dont need m flag

Also you’re only testing the text, you don’t need g flag either

const text = `word1 in line1
     word2 in line2
  word3 in line 3`;
  
const regex = /^(?=[sS]*bword1b)(?=[sS]*bword3b)/;

console.log(regex.test(text));
User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement