(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
mb_regex_set_options — マルチバイト正規表現関数のデフォルトオプションを取得または設定する
options で表されるオプションを、
マルチバイト対応の正規表現関数のデフォルトに設定します。
options設定するオプション。文字列で設定し、各文字がオプションを表します。 モードを設定する際には、モード文字は最後に指定しなければなりません。 オプションは複数指定できますが、モードはひとつしか指定できません。
| オプション | 意味 | 変更履歴 |
|---|---|---|
| i | 曖昧なマッチをオンにする | |
| x | 拡張パターン形式を有効にする | |
| m | '.' が改行にマッチする |
|
| s | '^' -> '\A', '$' -> '\Z' |
|
| p | m と s を両方指定するのと同じ |
|
| l | 最も長くマッチするものを探す | |
| n | 空のマッチを無視する | |
| e | 結果のコードを eval() する | PHP 7.1.0 で非推奨になり、PHP 8.0.0 で削除されました。 |
注意:
mb_regex_set_options() に
"e"オプションを設定しても、何も起きません。 mb_ereg_replace() や mb_eregi_replace() で指定するようにしてください。
| モード | 意味 |
|---|---|
| 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 が発生するようになりました。
|
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'.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