Skip to content
Advertisement

Matching words starting and ending with same vowel letter

I am trying to come up with a regex to match words starting and ending with same vowel. My question is, is this an elegant all-encompassing solution or am i missing something? So far this is what I have come up after a quick brainstroming. My preferred environment is javascript/python without special libraries etc. Thanks for helpful suggestions.

  • soln. 1) re = /(^[aeiou])w+1/i;
  • soln. 2) re = /(^[aeiou])[a-zA-Z]+1/i;
  • console.log(re.test("abcda")); //true
  • console.log(re.test("abcdo")); //false

Advertisement

Answer

Words can be matched using a word boundary b:

var re = /b([aeiou])[a-z]+1b/i;

The regex demo

The regex matches:

  • b – leading word boundary (because the pattern after it matches a word character)
  • ([aeiou]) – Group 1 capturing a vowel from the specified range
  • [a-z]+ – one or more letters (both upper- and lowercase since the /i modifier is used)
  • 1 – backreference to the vowel captured with the first group
  • b – trailing word boundary
Advertisement