Регулярное выражение или удаление подстроки - что работает быстрее?

Рейтинг: 0Ответов: 1Опубликовано: 14.10.2014

Имеется, например, регулярное выражение:

Pattern regexPhone = Pattern.compile("^(\\+?\\d+)?\\s*(\\(\\d+\\))?[\\s-]*([\\d-]*)$");

Проверяет валидность номера телефона. Также есть вариант поиска подстроки в строке, и ее удаление, для получения валидного номера телефона, в качестве альтернативы. Например, функцией replaceAll. Понятно, что и тот, и тот способ отработает быстро, но все же, какой из них по факту будет работать быстрее по времени? ) Спасибо.

Ответы

▲ 1Принят

Конечно, нужно измерять. Но можно сказать, что значительной разницы вы не увидите, т.к. replaceAll сам по себе использует регулярки:

public String replaceAll(String regex, String replacement) {
    return Pattern.compile(regex).matcher(this).replaceAll(replacement);
}