Обнаружение окончания гласного через регулярное выражение - PullRequest
0 голосов
/ 17 декабря 2010

С помощью регулярных выражений, как я могу проверить только последний символов заданной строки на совпадение?

Я хочу проверить, заканчивается ли что-либо в любомиз следующих:

vowel+consonant ("like 'ur' in devour")
vowel+'nt' ("paint")
vowel+'y' ("play")

и некоторых других похожих.

Как я могу сделать это с помощью регулярных выражений (в Java)?


edit:Как бы я использовал регулярные выражения, чтобы узнать, заканчивается ли глагол в шаблоне
consonant-'e'

или в различных других комбинациях, таких как

'ss' 'x' 'sh' 'ch' (sibilants)

, чтобы правильно спрягать их в английском как глаголы.

Ответы [ 2 ]

2 голосов
/ 17 декабря 2010

Я думаю, что это выражение, которое вы хотите.Первый бит проверяет гласный, а второй ищет любой согласный или 'nt'

[aeiou]([^aeiou\W\d]|nt)$

Я проверил его на http://regexpal.com/, который является моим обычным тестером,[^aeiou\W\d] означает «любой, который не является гласным, является буквенно-цифровым, но не является числом».Я могу предположить, что он может быть заменен всеми согласными:

[aeiou]([bcdfghjklmnpqrstvwxyz]|nt)$

Обратите внимание, что при этом игнорируется любая возможность любых символов, кроме перечисленных.Он также проверяет строчные буквы, но я не уверен, как сделать регулярное выражение без учета регистра в Java.

0 голосов
/ 17 декабря 2010

вам нужно регулярное выражение, подобное этому

^.*[aeiou]([^aeiou]|nt)$

, который содержит ноль или более символов, за которыми следуют один из символов a, e, i, o и u, за которым следует один символ, который не является гласным или точно nt

Как отмечалось в комментариях, [^aeiou] не работает должным образом, если только вы не предполагаете, что используются только альфа-символы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...