проблема понимания строкового шаблона - PullRequest
1 голос
/ 02 марта 2011

Я изучаю GWT, следуя этому уроку , но есть кое-что, что я не совсем понимаю в шаге 4. Следующая строка проверяет соответствие строки шаблону:

    if (!str.matches("^[0-9A-Z\\.]{1,10}$")) {...}

После проверки документации для класса Pattern я понимаю, что символы ^ и $ представляют начало и конец строки, а [...] {1,10} означает, что детальв скобках [...] должен присутствовать хотя бы один раз, но не более 10 раз.Что я не понимаю, так это последние символы части в скобках.0-9A-Z означает диапазон символов от 0 до 9 или от A до Z. Но что значит \\.значит?

Ответы [ 4 ]

3 голосов
/ 02 марта 2011

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

1 голос
/ 02 марта 2011

Точка "."в регулярном выражении означает «любой символ».Вышедшая точка "."(или «\.») означает сам символ точки (без какого-либо специального поведения регулярного выражения, например, неэкранированной точки).

Так, например, «123.ABC» может быть строкой, соответствующей данному регулярному выражению (разрывы строк и т. д. не включены).

1 голос
/ 02 марта 2011

Соответствует точечному символу. Двойная косая черта '\\' просто означает одиночный '\', поскольку вы должны экранировать \ 's в строках Java. Так '\\.' переводится как '\.' что означает совпадение только с "." персонаж. Если вы просто использовали "." само по себе, без побега, оно будет соответствовать любому персонажу. Таким образом, вы должны избежать этого, чтобы соответствовать «.» характер.

1 голос
/ 02 марта 2011

точкаТак как это специальный символ в синтаксисе регулярных выражений.Кроме того, он имеет два выхода, поскольку \ является специальным символом в строках Java.

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