1. PHP / Говнокод #407

    +34.2

    1. 1
    2. 2
    3. 3
    if (preg_match("/^([zZ][aA]|[зЗ][аА])$/", $text)) {
    		//za		
    } elseif (preg_match("/^([pP][rR][oO][tT][iI][vV]|[пП][рР][оО][тТ]][иИ][вВ])$/", $text)){

    Составил кто-то регулярку на проверку в сообщении слов за/za, против/protiv

    Обратите внимание как элегантно решена проблемма регистра символов

    Запостил: guest, 16 Января 2009

    Комментарии (6) RSS

    • Проходим:
      Обычно говнркодеры регэкспы не используют — слишком сложно. Редкий случай. Автора следует лелеять и пестовать — у него талант!
      Ответить
    • chrysalis:
      Используещие регэкспы, а подскажите тогда как решать проблему с регистром русских буковок? А то у меня, например, /б/i != Б ... где что нужно подправить?
      Ответить
    • локаль подправить надо
      Ответить
    • Keeper:
      Похожие проверки обычно встречаются в rc.d-скриптах юниксов, написанных на шелле. Возможно, этот кусок кода был перенесен из какого-то шелл-скрипта.
      Ответить
    • А кроме того такой код работает быстрее, чем /б/i, даже с выставленной локалью.
      А вообще да, скорее всего Keeper прав.
      Ответить

    Добавить комментарий