0Pricing
PHP Academy · 课时

拆分字符串与实用模式

使用 preg_split 拆分字符串,并构建常见的验证模式。

拆分字符串与实用模式 是 CoddyKit 上的免费 PHP Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 PHP Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 PHP Academy 课程共包含 4 节课。

preg_split() 函数签名

preg_split($pattern, $subject, $limit, $flags) 使用正则表达式分隔符拆分字符串,并返回子字符串数组。

简单拆分

按任意空白字符序列进行拆分。

<?php
$words = preg_split('/\s+/', "Hello   World\tFoo");
print_r($words); // ["Hello", "World", "Foo"]

限制拆分数量

第 3 个参数限制返回的片段数量。最后一个片段包含剩余内容。

<?php
$parts = preg_split('/,\s*/', "a, b, c, d", 3);
print_r($parts); // ["a", "b", "c, d"]

PREG_SPLIT_NO_EMPTY

PREG_SPLIT_NO_EMPTY 标志会从结果中移除空字符串——当输入包含连续分隔符时非常有用。

<?php
$parts = preg_split('/,/', "a,,b,,c", -1, PREG_SPLIT_NO_EMPTY);
print_r($parts); // ["a", "b", "c"]

PREG_SPLIT_DELIM_CAPTURE

将分隔符(及其捕获组)包含在结果数组中。

<?php
$parts = preg_split('/(,)/', "a,b,c", -1, PREG_SPLIT_DELIM_CAPTURE);
print_r($parts); // ["a", ",", "b", ",", "c"]

电子邮件验证模式

一个实用的 RFC-5322 简化版电子邮件正则表达式:

<?php
function validEmail(string $s): bool {
    return (bool) preg_match(
        '/^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$/',
        $s
    );
}

URL 验证模式

验证 http/https URL。

<?php
function validUrl(string $s): bool {
    return (bool) preg_match(
        '#^https?://[\w\-]+(\.[\w\-]+)+(/[^\s]*)?$#i',
        $s
    );
}

电话号码模式

允许可选的国家/地区代码,以及数字组之间的连字符、点号或空格。

<?php
$pattern = '/^\+?[1-9]\d{0,2}[\s\-.]?\d{3}[\s\-.]?\d{4,7}$/';
preg_match($pattern, '+1 800 555-1234', $m);

密码强度模式

至少需要 8 个字符,其中包含一个大写字母、一个数字和一个特殊字符。

<?php
function strongPassword(string $p): bool {
    return preg_match('/^(?=.*[A-Z])(?=.*\d)(?=.*[^\w]).{8,}$/', $p);
}

IPv4 地址模式

验证 IPv4 地址(每个八位组的范围为 0 到 255)。

<?php
$ipv4 = '/^(25[0-5]|2[0-4]\d|[01]?\d\d?)(\.(25[0-5]|2[0-4]\d|[01]?\d\d?)){3}$/';

日期格式模式

验证 YYYY-MM-DD 格式的日期字符串。

<?php
$date = '/^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/';
var_dump((bool) preg_match($date, '2025-06-15')); // true

总结

preg_split 按模式拆分字符串。电子邮件、URL、电话号码和日期都有实用的模式——对于标准类型,请始终优先使用 filter_var。

快速检查

哪个标志会从 preg_split 结果中移除空字符串?

常见问题解答

「拆分字符串与实用模式」课时是免费的吗?

是的 — 「拆分字符串与实用模式」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 PHP Academy 课程的其余内容,请升级到 CoddyKit PRO。 PHP Academy 课程共包含 4 节课。

「拆分字符串与实用模式」这节课中我会学到什么?

使用 preg_split 拆分字符串,并构建常见的验证模式。 你通过在浏览器中直接运行的动手代码来练习 PHP Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 PHP Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 PHP Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「拆分字符串与实用模式」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 PHP Academy 课中编写并运行代码吗?

能。每节 PHP Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 正则表达式语法基础
  2. 使用 preg_match 进行匹配
  3. 使用 preg_replace 替换文本
  4. 拆分字符串与实用模式
← 返回 PHP Academy