相同的单词开头和结尾的相同的字母
问题描述:
我想要拿出一个正则表达式匹配单词开始和结尾相同的元音。我的问题是,这是一个优雅的无所不包的解决方案,还是我错过了什么?到目前为止,这是我在脑筋急转弯后出现的。我的首选环境是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;
正则表达式匹配:
-
\b
- 领先的单词边界(因为它匹配一个单词字符后的模式) -
([aeiou])
- 第1组从指定范围 -
[a-z]+
捕获元音 - 一个或多个字母(包括大小写由于使用/i
改性剂) -
\1
- 反向引用到与第一组捕获的元音 -
\b
- 尾字边界
答
var re = /\b([aeiou])[a-z]+\1\b/i;
提供虚假如果字符串为 “AA”。字符串以相同的元音开始和结束。
Stribizew:哇,谢谢你的回答!竖起大拇指!我在辩论是否使用单词边界\ b,因为我不知道他们是否会普遍工作。谢谢! – Shona
呃,'\ b'应该用英文单词。随着俄罗斯,保加利亚等,将有一个问题:( –
是这就是我所担心的,但我想我会坚持用英文单词现在,必须尽快想到别人:) :( – Shona