mb_regex_set_options()的參數主要是以下幾種選項,通常用字符串形式傳入:
i - 忽略大小寫匹配示例: mb_regex_set_options('i');
作用:使正則表達式在匹配字母時不區分大小寫。例如匹配abc也能匹配ABC 。
x - 擴展模式示例: mb_regex_set_options('x');
作用:允許在正則表達式中使用空格和註釋,提高可讀性。例如:
<span><span><span class="hljs-title function_ invoke__">mb_ereg</span></span><span>(<span class="hljs-string">'a # 匹配a
b # 匹配b
c'</span>, </span><span><span class="hljs-variable">$str</span></span><span>);
</span></span> s - 單行模式示例: mb_regex_set_options('s');
作用:將點號.匹配包括換行符在內的所有字符。默認情況下, .不匹配換行符。
m - 多行模式示例: mb_regex_set_options('m');
作用:將^和$分別匹配每一行的開頭和結尾,而不僅僅是字符串的開頭和結尾。
A - 強制從字符串開頭匹配示例: mb_regex_set_options('A');
作用:要求正則從目標字符串的開頭開始匹配,如果不在開頭則匹配失敗。
D - 強制從字符串末尾匹配示例: mb_regex_set_options('D');
作用:要求正則從目標字符串的結尾進行匹配。
這些參數可以組合在一起,例如同時忽略大小寫和啟用多行模式:
<span><span><span class="hljs-title function_ invoke__">mb_regex_set_options</span></span><span>(</span><span><span class="hljs-string">'im'</span></span><span>);
</span></span>這意味著正則匹配將忽略大小寫,並且^ 、 $會匹配每一行的開頭和結尾,而不僅僅是整個字符串。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-title function_ invoke__">mb_regex_set_options</span></span><span>(</span><span><span class="hljs-string">'i'</span></span><span>); </span><span><span class="hljs-comment">// 忽略大小寫</span></span><span>
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">"php"</span></span><span>;
</span><span><span class="hljs-variable">$subject</span></span><span> = </span><span><span class="hljs-string">"PHP is great!"</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">mb_ereg</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$subject</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"匹配成功!"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"匹配失敗!"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>輸出結果:
<span><span>匹配成功!
</span></span>可以看到, mb_regex_set_options('i')使得php可以匹配PHP ,實現了大小寫不敏感。