2015-04-20 2 views
0

Я пытаюсь написать простое регулярное выражение, но я не знаю, где я иду не так. Мне нужно проверить, имеет ли строка фигурные фигурные скобки фигурные скобки.Регулярное выражение для фигурных скобок Число Curly brace ({n}) в Java

Например: Рассмотрим строку
Swapstream {2} - истинный
Swapstram - ложные

Pattern pattern=Pattern.compile("\\{[0-9]\\}"); 
Matcher matcher=pattern.matcher(input); 
if(matcher.matches()) 
{\\logic} 

Также я пытался писать \ d вместо [0-9], до сих пор строка не соответствия. Пожалуйста, помогите! , Благодаря

ответ

3

Вы можете использовать:

Pattern pattern=Pattern.compile("\\{\\d+\\}"); 
Matcher matcher=pattern.matcher(input); 
if(matcher.find()) { 
    /// match found 
} 

т.е. использовать \d+, чтобы позволить более одной цифры между { и } и что более важно использовать Matcher.find() вместо Matcher.matches(), который ожидает, чтобы соответствовать полной входной линии.

+1

работаю хорошо .. спасибо за помощь anubhava! –

+0

Имеет ли левая фигурная скобка какое-либо значение в регулярном выражении, что ее нужно избегать? Правая скобка не на моей машине. – JonJavaK

+0

Да, левая фигурная скобка используется для ограничения квантификатора, такого как 'a {5,9}' – anubhava

2

Метод matches() возвращает true только в том случае, если вся строка соответствует регулярному выражению. Вместо этого вы должны использовать метод find() класса Matcher.

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

  • Нет связанных вопросов^_^