Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > RegExp > POSIX -> PCRE


Автор: Trustmaster 21.10.04, 18:44
Есть у меня такое вот POSIX-совместимое регулярное выражение (а точнее, его вызов):
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    eregi('(\$[a-z0-9_]+)', $var, $regs);

Работает хорошо, вхождения находит. Но производительность в данном случае играет роль, поэтому хочу использовать Перловые регулярные выражения. Пробую так:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    preg_match_all('/\$[a-z0-9_]+/i', $var, $regs);

И он вхождения не находит. Где ошибка, как исправить?

Автор: Tishaishii 21.10.04, 19:03
Ты не указал что искать.
Круглые скобочки добавь.

Автор: Trustmaster 22.10.04, 04:15
Я так пробовал
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    preg_match_all('/(\$[a-z0-9_]+)/i', $var, $regs);

Выдает ошибку
Цитата
<b>Warning</b>: Illegal offset type


Добавлено
Всем спасибо, сам разобрался. preg_match_all находит глобальные вхождения. В данном случае нужен просто preg_match:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    preg_match('/(\$[a-z0-9_]+)/i', $var, $regs);

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)