Pattern.compile ( "\\ [+ \\.?]"); - PullRequest
       8

Pattern.compile ( "\\ [+ \\.?]");

6 голосов
/ 27 марта 2012

В этом утверждении, взятом из исходного кода Pagerank:

Pattern.compile("\\[.+?\\]");

Что означает шаблон?Я пытался изучить его, он говорит, что 2 косые черты означают одну косую черту, но что такое .+??

1 Ответ

14 голосов
/ 27 марта 2012

Этот строковый литерал:

"\\[.+?\\]"

означает эту строку:

\[.+?\]

Итак, это выражение:

Pattern.compile("\\[.+?\\]");

означает это регулярное выражение:

\[.+?\]

, что означает "литерал [, за которым следуют один или несколько символов - предпочтительно как можно меньше символов - и затем ]". (. означает «любой символ, кроме новой строки»; +? означает «один или несколько из того, что я только что сказал, и желательно как можно меньше».) В общем, регулярное выражение соответствует [____], где ____ может быть чем-либо, что не содержит символ новой строки, если его длина не менее одного символа; и где ____ не будет (обычно) содержать ] за исключением, возможно, самого первого символа.

Для получения дополнительной информации о Pattern и регулярных выражениях в Java см. документацию для Pattern класса .

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