2012-07-03 3 views
3

Я хочу написать регулярное выражение, где строка имеет (9 символов) и начинаться с «g» или «r» , а затем все числа после этого.Проблема с регулярным выражением

Я написал это, но он не работает:

public static void main(String[] args) { 
    String id= "g57895452"; 
    String pattern = "/^g([0-9]+){8}$/"; 
    if (id.matches(pattern)) { 
     System.out.println("true"); 
    } else { 
     System.out.println("false"); 
    } 
} 
+2

Вместо вашего 'if' вы можете просто использовать' System.out.println (id.matches (pattern)) '. – Pshemo

ответ

6

Исправлено повторное:

"^[gr]([0-9]{8})$" 

Вам не нужно +, когда у вас уже есть {8}.

Также вам не нужно (), если вы не хотите использовать группу далее в коде.

"^[gr][0-9]{8}$" 
+0

это alwasy дает false для данного id, оно не возвращается true –

+0

@JaneRaj: Удалите слэши пожалуйста –

1

Удалите / от начала и конца вашего шаблона регулярного выражения, он будет работать.

+0

Правда, но это не единственная проблема. –

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