// Берём строки начало текста или пробелы,
// потом первую гласную букву
// затем русский буквы, дефис, цифры
// Сохраняем само слово в группу
var regex = /(?:^|\s)([аеёиоуыэюя][а-яё\-0-9]*)/gi
// Пример текста
var str = "Аня Кристина алина коля яна. ЯНА радость ЁЖИК проверка";
// Здесь будет храниться результат
var words = [];
// Удаляем начальные пробелы, оставляя сами слова
var match = regex.exec(str);
while (match != null) {
words.push(match[1]);
match = regex.exec(str);
}
使正则表达式不区分大小写(我不想重复小写和大写字母):
\b[аеёиоуыэюя][а-яё\-]*,或通过 lookbehind(?<=^|\s)[аеёиоуыэюя][а-яё\-]*。正则表达式很简单:我们从元音开始,然后寻找任意数量的字母和一个连字符。如果允许单词中的数字(例如,查找
Ан-10,А4),则正则表达式将为\b[аеёиоуыэюя][а-яё\-0-9]*, 或通过 lookbehind(?<=^|\s)[аеёиоуыэюя][а-яё\-]*。不幸的是,这个例子在 JavaScript 中不起作用,因为它在用正则表达式解析时有问题:
\b非 ASCII 文本。所以你需要做类似的事情