Учебник по основам PHP. PHPBeginner

       

Расширение регулярных выражений


ereg <"'abc". $stnng).

/* Возвращает TRUE, если Istnng содержит

фрагмент "abc". */ егеУ ("*abc". Sstring);

/* Возвращает TRUE, если Sstring

начинается с "abc". */

ereg ("abc$". Sstring):

/* Возвращает TRUE, если Sstring

заканчивается на "abc" */

eregi ("(ozilla [23]JMSIE.3)".

$HTTP_USER_AGLNT); /* возвращает TRUE,

если браузер клиента

Netscape 2. 3 или MSIE 3. */

ereg ("([[.alnum:]]+) ([[.alnum ]]+)



([[ :alnum:]]+)". Sstring.Sregs).

/* Заносит три слова, разделенных

пробелами в $regs[l].

Sregs[2]и$regs[3].*/

$stnng = ereg_replace ("*". "<BR>". Sstring);

/* вставляет тег <BR> в начало строки

Sstring */ Jstring = ereg_replace

("$". "<BR>". Sstnng). /* вставляет тег

<BR> в конец строки Sstnng. */

Sstring •= ereg_replace ("\n". "". Sstnngj.

/* вырезает символы перехода на

новую строку в Sstring. */

Расширение регулярных выражений POSIX

ereg

Регулярный поиск

int ereg (string pattern, string string [, array regs])

Возвращает TRUE, если в строке string находится фрагмент, подходящий шаблону pattern, иначе — FALSE. В случае успеха массив regs заполняется совладениями с нодшаблонами. Элемент [0] массива regs содержит совпадение с полным шаблоном, а все последующие (1-9) — совпадения с подшаблонами. Массив regs всегда будет иметь 10 элементов, и это не зависит от числа подшаблонов.

Следующий пример печатает дату формата ISO (YYYY-MM-DD) в виде DD.MM.YYYY:

Sdate = "1982-11-29",

if (ereg

("([0-9]{4})-([0-9]{1.2})-([0-9]{1.2})",

$date. Sregs»

{ echo "$regs[3j.$regs[2].$regs[l]": } else f

echo "Дата в неправильной формате: $date". }

См. также: eregi(), ereg_replace(), eregi_replace().

eregi

Нечувствительный к регистру регулярный поиск

int eregi (string pattern, string string [, array regs])

Функция подобна ereg(), за исключением того, что она нечувствительна к регистру буквенных символов при поиске фрагментов совпадения с шаблоном.


См. также: ereg(), ereg_replace(). eregi_replace().

ereg_replace

Регулярная замена

string ereg_replace ( string pattern, string replacement, string string)

В строке string ищутся фрагменты совпадения с pattern и возвращается строка string, в которой фрагменты совпадения (если таковые нашлись) заменены на replacement. Допускается использовать ссылки (0-9) на совпадения с подшаблонами. Ссылка \\0 означает совпадение с целым шаблоном.

tstring - "This is a test".

echo ereg_repl асе ("( )

is". '\\lwas". $st'~ing):

Однако если replacement содержит целочисленное значение, оно будет воспринято как код символа заместителя.

Jstrirg = "В строке четыре слова";

echo ereg_replасе('четыре', 4. Sstnng):

/* выводит: В строке слова */ echo ereg_replace

( 'четыре'. '4'. Sstnng):

/* выводит: В строке 4 слова */

См. также: ereg(), eregi(), eregi_replace().

eregi_replace

Нечувствительная к регистру регулярная замена

string eregi_replace (string pattern, string replacement, string string)

Функция подобна ereg_replace(), за исключенном того, что она нечувствительна к регистру буквенных символов при поиске фрагментов совпадения с шаблоном.

См. также: ereg(), eregi(), ereg_replace().

split

Нарезка в массив регулярным выражением

array split (string pattern, string string [, int limit])

Возвращает массив частей строки string, на которые она была разделена последовательностями, совпадающими с регулярным выражением pattern. В аргументе можно указать максимальное число частей, возвращаемое в массиве; если таких частей обнаружилось больше, последний элемент массива будет содержать оставшуюся неразделенной часть строки string. При ошибке возвращается FALSE.

// выделить четыре первых поля

строки файла /etc/passwd

$pasc,wd_list = split (":". $passwd_line. 5):

//разделить на переменные строку даты-времени

list ($month. $day. Syear, Shour. Srmnutes, Sseconds)

= split ('[/. -]'. "04/30/1973 14 23 88").

Заметьте, иногда проще использовать функцию explodeO. См. также: splitiO, explodeO, implodeO.



spliti

Нечувствительный к регистру аналог split()

array spliti (string pattern, string string [, int limit])

Функция подобна splitO, за исключением того, что она нечувствительна к регистру буквенных символов при поиске фрагментов совпадения с шаблоном.

См. также: split(), explode(), implode().

sql_ regcase

Игнорирование регистра для SQL выражений

string sql_regcase (string string)

Каждый буквенный символ строки string превращается в пару символов в верхнем и нижнем регистре, заключенную в квадратные скоб-ч ки. Используется для преобразования регулярных выражений для функций, чувствительных к регистру, при необходимости его игнорирования.

Например, это позволяет при указании в SQL выражениях игнорировать регистр строки поиска. Например, выражение: SELECT * FROM tbl WHERE fieldl='Abc' часто чувствительно к регистру, а его аналогия: SELECT * FROM tbl WHERE fieldl»1 [Aa][Bb][Cc]' - нет. Но для многих СУБД поиск и так нечувствителен к регистру, например: SELECT * FROM tbl WHERE fieldl LIKE 'Abc'

pcho sql_regcase ("Fv Жъ '");

//выводит: [Ff][Vv] [ВДГЪь] !


Содержание раздела