CakeFest 2024: The Official CakePHP Conference

mb_regex_set_options

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

mb_regex_set_options Устанавливает или получает значение по умолчанию для настроек функций mbregex

Описание

mb_regex_set_options(?string $options = null): string

Устанавливает параметры по умолчанию, описанные в параметре options, для функций регулярных выражений, работающих со строками в многобайтных кодировках.

Список параметров

options

Настройки, которые нужно задать. Это строка, в которой каждый символ отвечает за какую-то настройку. Чтобы установить режим, необходимо указать его символ в конце строки, однако, можно задать только один режим, но несколько опций.

Настройки регулярных выражений
Настройка Описание Список изменений
i Включение неоднозначных совпадений  
x Включает форму расширенного шаблона  
m '.' совпадения с переводами строк  
s «^»«\A», «$»«\Z»  
p То же, что и объединение настроек m и s  
l Поиск совпадений с наибольшей длиной  
n Игнорировать пустые совпадения  
e Вычисление кода результата функцией eval() Объявлено устаревшим в PHP 7.1.0 и удалено в PHP 8.0.0

Замечание:

Настройка «e» не даёт эффекта при установке через функцию mb_regex_set_options(). Её указывают с функциями mb_ereg_replace() или mb_eregi_replace().

Синтаксические режимы регулярных выражений (может быть задан только один)
Режим Описание
j Java (Sun java.util.regex)
u Регулярные выражения GNU
g grep
c Emacs
r Ruby
z Perl
b Регулярные выражения POSIX Basic
d Регулярные выражения POSIX Extended

Возвращаемые значения

Возвращает предыдущие настройки. Если параметр options опущен или равен null, возвращает строку (string), которая описывает текущие параметры.

Список изменений

Версия Описание
8.0.0 Если параметр options задан и не равен null, возвращаются предыдущие параметры. Ранее возвращались текущие параметры.
8.0.0 Параметр options теперь может принимать значение null.
8.0.0 Опция «e» теперь выбрасывает исключение ValueError.
7.1.0 Опция «e» теперь выдаёт ошибку уровня ValueError.

Смотрите также

  • mb_split() - Разделяет строки в многобайтных кодировках через регулярное выражение
  • mb_ereg() - Находит совпадение регулярному выражению с поддержкой многобайтовых кодировок
  • mb_eregi() - Находит соответствие регулярному выражению с поддержкой многобайтовых символов без учёта регистра

add a note

User Contributed Notes 2 notes

up
1
indeyets at php dot net
14 years ago
It's a bit trickier, than patryk wrote:

There are parameters (you can specify several of these at the same time):

'i': ONIG_OPTION_IGNORECASE;
'x': ONIG_OPTION_EXTEND;
'm': ONIG_OPTION_MULTILINE;
's': ONIG_OPTION_SINGLELINE;
'p': ONIG_OPTION_MULTILINE | ONIG_OPTION_SINGLELINE;
'l': ONIG_OPTION_FIND_LONGEST;
'n': ONIG_OPTION_FIND_NOT_EMPTY;
'e': eval() resulting code

And there are "modes" (if you specify several of these, the LAST one will be used):
'j': ONIG_SYNTAX_JAVA;
'u': ONIG_SYNTAX_GNU_REGEX;
'g': ONIG_SYNTAX_GREP;
'c': ONIG_SYNTAX_EMACS;
'r': ONIG_SYNTAX_RUBY;
'z': ONIG_SYNTAX_PERL;
'b': ONIG_SYNTAX_POSIX_BASIC;
'd': ONIG_SYNTAX_POSIX_EXTENDED;

You can find descriptions of these constants here: http://www.geocities.jp/kosako3/oniguruma/doc/API.txt
up
0
patryk dot szczyglowski at gmail dot com
15 years ago
Supported options are:

i - ONIG_OPTION_IGNORECASE
x - ONIG_OPTION_EXTEND
m - ONIG_OPTION_MULTILINE
s - ONIG_OPTION_SINGLELINE
p - ONIG_OPTION_MULTILINE | ONIG_OPTION_SINGLELINE
l - ONIG_OPTION_FIND_LONGEST
n - ONIG_OPTION_FIND_NOT_EMPTY
j - ONIG_SYNTAX_JAVA
u - ONIG_SYNTAX_GNU_REGEX
g - ONIG_SYNTAX_GREP
c - ONIG_SYNTAX_EMACS
r - ONIG_SYNTAX_RUBY
z - ONIG_SYNTAX_PERL
b - ONIG_SYNTAX_POSIX_BASIC
d - ONIG_SYNTAX_POSIX_EXTENDED
e - eval() resulting code

Constants above are from Oniguruma regexp library, which is used internally. Default value for PHP 5.2.x is 'pr'.
To Top