在 PHP 中, 函数用于在多字节字符串中进行正则匹配,支持 UTF-8 等多字节编码,常用于处理中文、日文等非 ASCII 字符的文本。本文将介绍一些常见的正则写法示例及实用技巧。
语法如下:
</span><span><span>bool</span></span><span> </span><span><span class="function_ invoke__">mb_ereg_match</span></span><span>(</span><span><span>string</span></span><span> </span><span><span>$pattern</span></span><span>, </span><span><span>string</span></span><span> </span><span><span>$string</span></span><span>[, </span><span><span>string</span></span><span> </span><span><span>$option</span></span><span> = </span><span><span>""</span></span><span>])
返回 true 表示匹配成功,false 表示匹配失败。
示例:
</span><span><span class="function_ invoke__">mb_regex_encoding</span></span><span>(</span><span><span>"UTF-8"</span></span><span>); </span><span><span>// 设置正则匹配的编码</span></span><span> </span><span><span>if</span></span><span> (</span><span><span class="function_ invoke__">mb_ereg_match</span></span><span>(</span><span><span>"^[0-9]+$"</span></span><span>, </span><span><span>"12345"</span></span><span>)) { </span><span><span>echo</span></span><span> </span><span><span>"匹配成功"</span></span><span>; } </span><span><span>else</span></span><span> { </span><span><span>echo</span></span><span> </span><span><span>"匹配失败"</span></span><span>; }
此示例中,正则 ^[0-9]+$ 表示字符串必须全部由数字组成。
中文字符可以通过 Unicode 范围来匹配:
</span><span><span class="function_ invoke__">mb_regex_encoding</span></span><span>(</span><span><span>"UTF-8"</span></span><span>); </span><span><span>if</span></span><span> (</span><span><span class="function_ invoke__">mb_ereg_match</span></span><span>(</span><span><span>"^[\x{4e00}-\x{9fa5}]+$"</span></span><span>, </span><span><span>"测试中文"</span></span><span>)) { </span><span><span>echo</span></span><span> </span><span><span>"全中文匹配"</span></span><span>; } </span><span><span>else</span></span><span> { </span><span><span>echo</span></span><span> </span><span><span>"匹配失败"</span></span><span>; }
这里 [\x{4e00}-\x{9fa5}] 是常用的中文 Unicode 范围。
邮箱匹配示例:
</span><span><span class="function_ invoke__">mb_regex_encoding</span></span><span>(</span><span><span>"UTF-8"</span></span><span>); </span><span><span>$pattern</span></span><span> = </span><span><span>"^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$"</span></span><span>; </span><span><span>if</span></span><span> (</span><span><span class="function_ invoke__">mb_ereg_match</span></span><span>(</span><span><span>$pattern</span></span><span>, </span><span><span>"[email protected]"</span></span><span>)) { </span><span><span>echo</span></span><span> </span><span><span>"邮箱合法"</span></span><span>; } </span><span><span>else</span></span><span> { </span><span><span>echo</span></span><span> </span><span><span>"邮箱不合法"</span></span><span>; }
中国大陆手机号常见写法:
</span><span><span class="function_ invoke__">mb_regex_encoding</span></span><span>(</span><span><span>"UTF-8"</span></span><span>); </span><span><span>$pattern</span></span><span> = </span><span><span>"^1[3-9][0-9]{9}$"</span></span><span>; </span><span><span>if</span></span><span> (</span><span><span class="function_ invoke__">mb_ereg_match</span></span><span>(</span><span><span>$pattern</span></span><span>, </span><span><span>"13800138000"</span></span><span>)) { </span><span><span>echo</span></span><span> </span><span><span>"手机号合法"</span></span><span>; } </span><span><span>else</span></span><span> { </span><span><span>echo</span></span><span> </span><span><span>"手机号不合法"</span></span><span>; }
总结:mb_ereg_match 是处理多字节字符串正则匹配的利器,通过合理设置编码和正则规则,可以轻松匹配数字、中文、邮箱、手机号等常见需求。掌握这些示例和技巧,可以让你的 PHP 字符串处理更加稳健。
<?php // 这部分与文章内容无关,可以放置脚本结束处理 echo "\nPHP 脚本运行结束。\n"; ?>