Функции, использующие регулярные выражения |
Содержание Previous Next |
ARRCOMP([#выражение 1],[$выражение 2],[$выражение 3]) - возвращает индекс элемента массива с названием [$выражение 2], соответствующего регулярному выражению [$выражение 3]. Поиск начинается с элемента номер [#выражение 1]; индексация элементов массива ведётся с нуля. Параметр [#выражение 1] может отсутствовать, при этом он принимается равным 0. Если элемент не найден, функция возвращает -1. Поиск происходит среди текстовых элементов массива. Примеры:
ARRCOMP(0,'A','This') - найдёт строку 'This' среди текстовых элементов массива "A" (или вернёт -1, если такого значения не существует) ARRCOMP(2,'A','abc\d+') - найдёт строку, соответствующую регулярному выражению "abc\d+", в текстовых значениях массива "A" (первые два элемента массива игнорируются) ARRCOMP(0,'A','.*string.*') - аналогично предыдущему примеру, но поиск осуществляется по всем текстовым элементам массива ARRCOMP('A','This') - эквивалентно 1му варианту
STRCOMP([$выражение],[$шаблон]) - проводит сравнение строки [$выражение] на соответствие регулярному выражению [$шаблон]. Возвращает -1, если строка соответствует шаблону, иначе 0. Сравни с функцией "STRFIND".
STRFIND([$выражение],[$шаблон],[#номер]) - возвращает подстроку в строке [$выражение], соответствующую группе с номером [#номер] регулярного выражения [$шаблон]. Если подстрока с указанным номером отсутствует, то возвращается пустая строка. Нумерация групп подстрок начинается с 1. Если параметр [#номер] отсутствует или равен 0, то возвращается подстрока, соответствующая всему регулярному выражению [$шаблон]. Примеры:
STRFIND(' идти к пещере', '^(\S+)\s(\S+)\s(\S+)$', 0) = '' STRFIND('идти к пещере', '^(\S+)\s(\S+)\s(\S+)$', 1) = 'идти' STRFIND('идти к пещере', '^(\S+)\s(\S+)\s(\S+)$', 2) = 'к' STRFIND('идти к пещере', '^(\S+)\s(\S+)\s(\S+)$', 3) = 'пещере' STRFIND('идти к пещере', '^(\S+)\s(\S+)(\s(\S+))?$', 4) = 'пещере' STRFIND('искать ключ', '^(\S+)\s(\S+)(\s(\S+))?$', 1) = 'искать' STRFIND('искать', '^(\S+)\s(\S+)(\s(\S+))?$', 0) = '' STRFIND('искать', '^(\S+)\s(\S+)(\s(\S+))?$', 1) = '' STRFIND('искать', '^(\S+)(\s(\S+)(\s(\S+))?)?$', 1) = 'искать' STRFIND('идти к дому', 'к\s(\S+)', 0) = 'к дому' STRFIND('идти к дому', 'к\s(\S+)') = 'к дому' STRFIND('идти к дому', 'к\s(\S+)', 1) = 'дому' STRFIND('идти к своему дому', 'к\s(\S+)', 1) = 'своему'
STRPOS([$выражение],[$шаблон],[#номер]) - возвращает позицию символа, с которого начинается вхождение подстроки в строке [$выражение], соответствующей группе с номером [#номер] регулярного выражения [$шаблон]. Если подстрока с указанным номером отсутствует, то возвращается 0. Нумерация групп подстрок начинается с 1. Если параметр [#номер] отсутствует или равен 0, то возвращается позиция символа, с которого начинается вхождение подстроки, соответствующей всему регулярному выражению [$шаблон]. Примеры:
STRPOS(' идти к пещере', '^(\S+)\s(\S+)\s(\S+)$', 0) = 0 STRPOS('идти к пещере', '^(\S+)\s(\S+)\s(\S+)$', 1) = 1 STRPOS('идти к пещере', '^(\S+)\s(\S+)\s(\S+)$', 2) = 6 STRPOS('идти к пещере', '^(\S+)\s(\S+)\s(\S+)$', 3) = 8 STRPOS('идти к пещере', '^(\S+)\s(\S+)(\s(\S+))?$', 4) = 8 STRPOS('искать ключ', '^(\S+)\s(\S+)(\s(\S+))?$', 1) = 1 STRPOS('искать', '^(\S+)\s(\S+)(\s(\S+))?$', 0) = 0 STRPOS('искать', '^(\S+)\s(\S+)(\s(\S+))?$', 1) = 0 STRPOS('искать', '^(\S+)(\s(\S+)(\s(\S+))?)?$', 1) = 1 STRPOS('идти к дому', 'к\s(\S+)', 0) = 6 STRPOS('идти к дому', 'к\s(\S+)') = 6 STRPOS('идти к дому', 'к\s(\S+)', 1) = 8 STRPOS('идти к своему дому', 'к\s(\S+)', 1) = 8
Также см. раздел "Использование регулярных выражений". |