2015-04-29 1 views
-4
public class RegularExpressionDemo2 { 

    public static void main(String[] args) { 
     Pattern p = Pattern.compile("\\."); 
     Matcher m = p.matcher("a1b7 @z#"); 
     while (m.find()) { 
      System.out.println(m.start() + "-------" + m.group()); 
     } 
    } 
} 

С docs, он говорит, что . символ печатает любой символ, то Какой вышеуказанную программа не печатает любую вещи.Обычная программа Expression из Предопределенных символьных классов

+0

Потому что вы избегаете '.' (с обратной косой чертой), что делает его совпадающим с буквальным'. '. – Biffen

+0

Спасибо, его работа сейчас – kittu

ответ

1

Вы удвоили точку.

Это значит, что вы соответствуете буквальной точке, но не подстановочную букву для любого символа.

Ваш вход не содержит одного, поэтому ничего не печатается.

Изменить Pattern на ".".

+0

Если я не удваиваю escape, тогда он дает ошибку «незаконный escape-символ» в этой строке – kittu

+2

@kittu '..' ', А не' '\." '. – Biffen

+0

@kittu какой JDK/IDE вы используете? Это обязательно должно произойти. – Mena

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

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