ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Регулярные выражения [Beta-version]
  #1  
Старый 20.03.2007, 11:26
Аватар для Talisman
Talisman
Постоянный
Регистрация: 22.04.2006
Сообщений: 566
Провел на форуме:
1325772

Репутация: 517


Отправить сообщение для Talisman с помощью ICQ
По умолчанию Регулярные выражения [Beta-version]

Привет, все же эта статья не о моих мыслях, а о созданном до меня творении - регулярных выраженийх, то не буду копипастить "заводские" мануалы, а сразу перейду к делу.
Регулярные выражения
Как всегда, материал для затравки:
http://molody.tagiltelecom.ru/doc/program/www/php4/ru/reference.pcre.pattern.syntax.html
и http://www.providerz.ru/articles/php/regexp-intro.html
прочитали? ну хотябы просмотрели? тогда едем дальше
PHP
Разберу только пшп, ибо наиболее распространен, да и в перле все точно так же)
Функции, которые работают с регулярками:
preg_match - http://ru2.php.net/manual/en/function.preg-match.php
PHP код:
int preg_match(
string pattern// регулярка
string subject// строка, где ищем
[, array matches// куда поместятся результаты поиска

Тамошний примерчик:
PHP код:
 <?
  
function is_email($Addr
  {
    
$p '/^[a-z0-9!#$%&*+-=?^_`{|}~]+(\.[a-z0-9!#$%&*+-=?^_`{|}~]+)*'// имя аккаунта
    
$p.= '@([-a-z0-9]+\.)+([a-z]{2,3}'// зоны второго уровня
    
$p.= '|info|arpa|aero|coop|name|museum)$/ix'// зоны первого уровня
    
return preg_match($p$Addr);
  }
?>
preg_match_all - http://ru2.php.net/manual/en/functio...-match-all.php -аналогична простому preg_match, только эта позволяет задать порядок, в котором выводятся результаты:
PHP код:
int preg_match_all(
string pattern// регулярка
string subject// строка, где ищем
array matches // куда поместятся результаты поиска
[, int order// порядок размещения строк в результирующем массиве, принимает значения:
PREG_PATERN_ORDER нулевой элемент будет массивом полных соответствий шаблону.
PREG_SET_ORDER начиная с нулевого симовола

Как видно, эта функция просто более удобна в некоторых ситуациях.
preg_split -http://ru2.php.net/manual/en/function.preg-split.php - разбивает строку в соответствии с регулярным выражением и возвращает массив строк, как функция split() ( http://ru2.php.net/manual/en/function.split.php ):
PHP код:
array preg_split(
string pattern// регулярка
string subject// строка, которую разбиваем
[, int limit // ограничение найденных значений
[, int flags// если указать PREG_SPLIT_NO_EMPTY то функция вернет только не пустые строки

ereg_replace - http://ru2.php.net/manual/en/function.ereg-replace.php - обрабатывает стрчоку по шаблону, например:
PHP код:
$hash=ereg_replace("[^0-9a-fA-F]","",$hash); 
заменит все, что не цифра и не буква: abcdefABCDEF на пустое множество, т.е. вырежет все, кроме допустимых символов в хеше)
PHP - Иной взгляд
Вот другой взгляд на то же, про что и я говорил
http://www.providerz.ru/articles/php...-continue.html
Правила хорошего тона:
Комментируйте свои регулярки! ведь их наверняка нужно будет комментировать/изменять, поэтому совет:
PHP код:
$hash=ereg_replace("[^ // все кроме
0-9 // цифры
a-f // мелкие буквы abcdef
A-F // большие буквы на всяк случай ABCDEF
]"
,"",$hash); 
так понятнее, ведь правда?
Зачем?
фильтровать передаваемые скрипту значения, "сдирать" инфу с чужого сайта, да много еще как)



ЗЫ: не спешите баянить, если что-то не понравилось... ИБО: не решился сразу переводить те 2 начальные статьи, ибо зачем? а щас появились сомнения. можт все же перевести на ВВ-теги форума?
че сделать с теми статьями? "переварить", откомментировав каждые регулярки?
ибо много где регулярки используются, а из-за отстуствия простой документации много вещей непонятны
ЗЫ еще в тему: http://forum.antichat.ru/thread27498-%F0%E5%E3%F3%EB%FF%F0%ED%FB%E5.html
жду камментов)
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обнаружение Sql инъекций и Css атак k00p3r Чужие Статьи 0 12.06.2005 20:43



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ