Я только что обнаружил ошибку в каком-то коде, который я не писал, и я немного удивлен:
Pattern pattern = Pattern.compile("\\d{1,2}.\\d{1,2}.\\d{4}");
Matcher matcher = pattern.matcher(s);
Несмотря на то, что этот код плохо работает с входными данными, мы получаем (потому что он пытается найти даты в формате 17.01.2011 и возвращает такие вещи, как 10396/2011, а затем разбился, потому что не может проанализировать дату, но это на самом деле не является предметом этого вопроса; ) Интересно:
не является одним из пунктов Pattern.compile как оптимизация скорости (путем предварительной компиляции регулярных выражений)?
не должно быть "статичным" шаблон всегда скомпилирован в статический шаблон?
В Интернете есть так много примеров, где один и тот же шаблон всегда перекомпилируется с использованием Pattern. скомпилировать , и я начинаю задаваться вопросом, вижу я что-то или нет.
Нет (при условии, что строка статична и, следовательно, не создается динамически):
static Pattern pattern = Pattern.compile("\\d{1,2}.\\d{1,2}.\\d{4}");
всегда предпочтительнее, чем ссылка на нестатический шаблон ?