匹配以相同字母开头和结尾的单词

时间:2016-03-02 17:57:24

标签: javascript regex

我正在尝试用正则表达式来匹配以相同元音开头和结尾的单词。我的问题是,这是一个优雅的无所不包的解决方案还是我错过了什么?到目前为止,这是我快速绞尽脑汁后出现的情况。我首选的环境是没有特殊库等的javascript / python。感谢您提供有用的建议。

  • SOLN。 1)re = /(^ [aeiou])\ w + \ 1 / i;
  • SOLN。 2)re = /(^ [aeiou])[a-zA-Z] + \ 1 / i;

  • 的console.log(re.test( “ABCDA”)); //真

  • 的console.log(re.test( “abcdo”)); //假

2 个答案:

答案 0 :(得分:6)

可以使用单词边界\b来匹配单词:

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

regex demo

正则表达式匹配:

  • \b - 前导词边界(因为它后面的模式与单词字符匹配)
  • ([aeiou]) - 第1组捕获指定范围内的元音
  • [a-z]+ - 一个或多个字母(自使用/i修饰符以来都是大写和小写)
  • \1 - 对第一组捕获的元音的反向引用
  • \b - 尾随字边界

答案 1 :(得分:0)

var re = /\b([aeiou])[a-z]+\1\b/i; 
如果字符串是“aa”,则

给出false。字符串以相同的元音开头和结尾。