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

问题描述:

我想要拿出一个正则表达式匹配单词开始和结尾相同的元音。我的问题是,这是一个优雅的无所不包的解决方案,还是我错过了什么?到目前为止,这是我在脑筋急转弯后出现的。我的首选环境是javascript/python,没有特殊的库等。谢谢你的建议。相同的单词开头和结尾的相同的字母

  • 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”)); //假

词可以用一个单词边界\b匹配:

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

regex demo

正则表达式匹配:

  • \b - 领先的单词边界(因为它匹配一个单词字符后的模式)
  • ([aeiou]) - 第1组从指定范围
  • [a-z]+捕获元音 - 一个或多个字母(包括大小写由于使用/i改性剂)
  • \1 - 反向引用到与第一组捕获的元音
  • \b - 尾字边界
+0

Stribizew:哇,谢谢你的回答!竖起大拇指!我在辩论是否使用单词边界\ b,因为我不知道他们是否会普遍工作。谢谢! – Shona

+0

呃,'\ b'应该用英文单词。随着俄罗斯,保加利亚等,将有一个问题:( –

+0

是这就是我所担心的,但我想我会坚持用英文单词现在,必须尽快想到别人:) :( – Shona

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

提供虚假如果字符串为 “AA”。字符串以相同的元音开始和结束。