PHP Conference Japan 2024

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 ms选项相同  
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 基本正则表达式
d POSIX 扩展正则表达式

返回值

之前的选项。如果省略options或为null,则返回描述当前选项的string

变更日志

版本 描述
8.0.0 如果给出参数options且不为null,则返回之前的选项。以前,返回的是当前选项。
8.0.0 options现在可以为空。
8.0.0 “e”选项现在会抛出ValueError异常。
7.1.0 “e”选项现在会发出E_DEPRECATED

参见

  • mb_split() - 使用正则表达式分割多字节字符串
  • mb_ereg() - 支持多字节的正则表达式匹配
  • mb_eregi() - 忽略大小写的支持多字节的正则表达式匹配

添加备注

用户贡献的笔记 2 条笔记

indeyets at php dot net
15 年前
这比patryk写的要复杂一些

有一些参数(您可以同时指定多个参数)

'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() 结果代码

还有一些“模式”(如果指定多个,则使用最后一个)
'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;

您可以在此处找到这些常量的描述:http://www.geocities.jp/kosako3/oniguruma/doc/API.txt
patryk dot szczyglowski at gmail dot com
15 年前
支持的选项是

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() 结果代码

以上常量来自内部使用的Oniguruma正则表达式库。PHP 5.2.x的默认值为'pr'。
To Top