Я пытаюсь создать шаблон регулярного выражения, где я могу определить, заканчивается ли строка символом 's'. Я хочу удалить «s» из конца строки, но theres catch ...Regex pattern для определения s как последнего символа после гласного
Я хочу удалить 's', если и только если предыдущая часть слова содержит гласную НЕ НЕМЕДЛЕННО до 's', и слово не содержит другого гласного.
Так, например, слово «продажи» станет «продажей», потому что перед символом «e», предшествующим «s», в конце слова есть гласная.
Слово «примеры» -> «пример»
НО слово «газ» должен оставаться газ, потому что единственный гласный является один непосредственно перед «с».
я придумал следующее:
public String removeS(String word) {
if (word.matches(".*[a|e|i|o|u][.*]s")){
word = word.substring(0, word.length()-1);
}
return word;
}
Теперь, когда я ввод слова, как «продаж», ничего не происходит. Это просто слово «продажи». Я предполагаю, что это имеет какое-то отношение к шаблону regex, который я использую, чтобы соответствовать строке.
Я относительно новичок в регулярном выражении, но то, что я пытался получить с этим ".*[a|e|i|o|u][.*]s"
, - это то, что я объяснил выше. Сопоставьте строку, имеющую некоторый гласный (a, e, i, o, u) перед символом непосредственно перед s в конце строки. Я что-то пропустил?
'. * [Aeiou].* s' может быть лучше. –
Как сказал anndy; но я до сих пор не понимаю этого условия: «Я хочу удалить« s »тогда и только тогда, когда предыдущая часть слова содержит гласную НЕ НЕМЕДЛЕННО перед« s » – Enissay
Что-то вроде' [^ aeiou]. + [aeiou] s'? – Tunaki