#c# #regex #string #visual-studio-2010 #replace
#c# #регулярное выражение #строка #visual-studio-2010 #заменить
Вопрос:
Это то, что у меня есть:
word = Regex.Replace(word, @"[aeiouyAEIOUY]z", String.Empty);
Но я думаю, что это избавляет только от последней буквы (если это гласная).
Так jrhyui
что вернулось jrhyu
бы, тогда как я действительно хочу вернуться jrh
.
Ответ №1:
Вы близки. [aeiouyAEIOUY]
это символьный класс, который соответствует ровно одной гласной. Вы хотите удалить все гласные из конца строки, поэтому сопоставьте один или несколько экземпляров класса character . Вы можете сделать это, добавив a
в конце, например, так:
[aeiouyAEIOUY] z
// ^-- match any single character in the list one or more times
Ответ №2:
Небольшая настройка вашего исходного кода должна сделать это:
word = Regex.Replace(word, @"[aeiouyAEIOUY]*z", String.Empty);
Ответ №3:
Следующий шаблон будет соответствовать вашим критериям: (?i)[aeiou] (?>$)(?-i)