2016-01-07 3 views
-5

Найти регулярное выражение, является ли n-й символ в строке с конца символом из набора {a,e,i,o,u}.регулярное выражение, чтобы найти n-ю букву от конца строки

Например:

n=10; 
String=algorithm 

Это true. Поскольку a - десятая буква с конца, находится в наборе.

n=5; 
abcdefg; 

Это false. Поскольку c - пятое письмо от конца.

Как определить регулярное выражение для вышеуказанного шаблона?

+2

Что вы пытались? –

+4

алгоритм не имеет 10 букв. ничто не является 10-м символом с конца. – azurefrog

+0

Почему это должно быть регулярное выражение? – Marvin

ответ

1

Используйте конец якоря:

[aeiou].{<n-1>}$ 

<n-1> надо заменить на исправный, конечно. В Java это будет:

import java.util.regex.Pattern; 
//... 
String patternString = "[aeiou].{" + String.valueOf(n-1) + "}$"; 
Pattern pattern = Pattern.compile(patternString); 
//... 
+0

Не нужно 'String.valueOf', просто нужно скобки:' '[aeiou]. {" + (N-1) + "} $" ' – Andreas

Смежные вопросы