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

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

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

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

1 ответ

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

"\\[.+?\\]"

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

\[.+?\]

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

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

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

\[.+?\]

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

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

licensed under cc by-sa 3.0 with attribution.