Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Maxx 07.01.2007 07:23 / 07.01.2007 08:04
В доке сказано:Если в шаблоне не используются круглые скобки, то оператор возвращает булевое значение истина при обнаружении подстроки, соответствующей шаблону, или ложь, если совпадений не найдено.На самом деле если совпадение не найдено то возвращается false, но если найдено - то возвращается не true, а таблица с одной строкой, причем пустой (если не указано ' )
@main[] $string[baa] $t[^string.match[0]]в $t - обьект класса bool (false)
@main[] $string[baa] $t[^string.match[a]] ^t.count[]$t - обьект класса table
Если указана опция поиска g, будет создана таблица найденного по шаблону (по одной строке на каждое вхождение).если в предыдущем добавить опцию g, то будет создана опять же пустая таблица с двумя строками. (если совпадений 100 - то и строк будет сто). Непонятно зачем она вообще создается, не правильнее ли сразу возвращать количество совпадений (int) если не укзана опция ', и false (или 0), если ни одного не найдено?
При этом не важно, есть в шаблоне круглые скобки или нет.
Внимание: значения столбцов prematch, match, postmatch вычисляются только если указана опция ' .