Похоже, что этот вопрос возник из нашего небольшого аргумента здесь , поэтому я чувствую, что я как-то обязан ответить.
php-разработчикам активно промывают мозги по поводу "производительности", когда возникает множество слуховвозникают мифы, в том числе такие глупые вещи, как «двойные кавычки медленнее».Regexps, являющийся "медленным", является одним из этих мифов, к сожалению, поддерживаемым руководством (см. Печально известный комментарий на странице preg_match).Правда в том, что в большинстве случаев вам все равно.Если ваш код не повторяется 10000 раз, вы даже не заметите разницы между строковой функцией и регулярным выражением.И если ваш код повторяется 10000 раз, вы должны делать что-то не так в любом случае, и вы повысите производительность за счет оптимизации логики, а не за счет сокращения регулярных выражений.однако читать код, который их использует , в большинстве случаев короче, чище и проще (сравните ваши и мои ответы по приведенной выше ссылке).
Другая важная проблема - это гибкость, особеннов PHP, чья библиотека строк не поддерживает Unicode из коробки.В вашем конкретном примере, что происходит, когда вы решаете перенести свой сайт на utf8?С ctype_alpha
вам как-то не повезло, preg_match
потребует другой шаблон, но будет продолжать работать.
Итак, регулярные выражения не медленнее, более читабельны и более гибки.С какой стати мы должны избегать их?