如何使用 preg_split() 而不是 split()

how to use preg_split() instead of split ()

这里是 newbee...

我正在尝试替换网站中的 split() 函数,所以我发现可以使用 preg_split()。首先必须找出 split() 函数的工作原理,所以我在 php.net 站点查看了这个示例:

<?php
// Delimiters may be slash, dot, or hyphen
$date = "04-30/1973";
list($month, $day, $year) = split('[/.-]', $date);
echo "Month: $month; Day: $day; Year: $year<br />\n";
?>

输出符合预期: 月份:04;天数:30;年份: 1973

所以我认为这很容易,只需将其更改为:

<?php
// Delimiters may be slash, dot, or hyphen
$date = "04-30/1973";
list($month, $day, $year) = preg_split('[/.-]', $date);
echo "Month: $month; Day: $day; Year: $year<br />\n";
?>

输出: 月份:04-30/1973;日: ;年份:

我的想法有什么问题吗?

只需添加一些符号来定义正则表达式start/end。可以是~,例如:

$date = "04-30/1973";
list($month, $day, $year) = preg_split('~[/.-]~', $date);
echo "Month: $month; Day: $day; Year: $year<br />\n";

更新:

如果您的代码使用 / 作为正则表达式边界,那么您必须使用反斜杠转义 /

list($month, $day, $year) = preg_split('/[\/.-]/', $date);