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,則返回描述目前選項的 字串

更新日誌

版本 說明
8.0.0 如果給定參數 options 且其值不為 null,則返回*先前*的選項。以前,返回的是*目前*的選項。
8.0.0 options 現在可以為 null。
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(Java 語法)
u - ONIG_SYNTAX_GNU_REGEX(GNU Regex 語法)
g - ONIG_SYNTAX_GREP(Grep 語法)
c - ONIG_SYNTAX_EMACS(Emacs 語法)
r - ONIG_SYNTAX_RUBY(Ruby 語法)
z - ONIG_SYNTAX_PERL(Perl 語法)
b - ONIG_SYNTAX_POSIX_BASIC(POSIX 基本語法)
d - ONIG_SYNTAX_POSIX_EXTENDED(POSIX 擴展語法)
e - eval() 執行結果的程式碼

上述常數來自 Oniguruma 正則表達式庫,PHP 內部使用此庫。PHP 5.2.x 的預設值是 'pr'。
To Top