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マルチバイト正規表現関数のデフォルトオプションを取得または設定する

説明

mb_regex_set_options(?string $options = null): string

options で表されるオプションを、 マルチバイト対応の正規表現関数のデフォルトに設定します。

パラメータ

options

設定するオプション。文字列で設定し、各文字がオプションを表します。 モードを設定する際には、モード文字は最後に指定しなければなりません。 オプションは複数指定できますが、モードはひとつしか指定できません。

Regex のオプション
オプション 意味 変更履歴
i 曖昧なマッチをオンにする  
x 拡張パターン形式を有効にする  
m '.' が改行にマッチする  
s '^' -> '\A', '$' -> '\Z'  
p ms を両方指定するのと同じ  
l 最も長くマッチするものを探す  
n 空のマッチを無視する  
e 結果のコードを eval() する PHP 7.1.0 で非推奨になり、PHP 8.0.0 で削除されました。

注意:

mb_regex_set_options()"e" オプションを設定しても、何も起きません。 mb_ereg_replace()mb_eregi_replace() で指定するようにしてください。

Regex 構文モード(ひとつだけ設定可能です)
モード 意味
j Java (Sun java.util.regex)
u GNU regex
g grep
c Emacs
r Ruby
z Perl
b POSIX Basic regex
d POSIX Extended regex

戻り値

以前設定されていたオプションを返します。 options が省略された場合、または null の場合、 現在設定されているオプションを文字列で返します。

変更履歴

バージョン 説明
8.0.0 options が指定され、null でない場合、 以前に 設定されていたオプションが返されるようになりました。 これより前のバージョンでは、 現在 設定されているオプションが返されていました。
8.0.0 options は、nullable になりました。
8.0.0 "e" オプションを指定すると、ValueError がスローされるようになりました。
7.1.0 "e" オプションを指定すると、E_DEPRECATED が発生するようになりました。

参考

  • 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