请给我解释一下这个正则表达式


Please explain this regex to me

我遇到了下面的代码来将一个字符串分割成"token ":

$tokens = preg_split("/[^'-_A-Za-z0-9]+/", $string);

谁能给我解释一下这个和这个有什么不同吗?

$tokens = explode(' ', $string);

任何帮助都将非常感激:-)

您提供的正则表达式:

$tokens = preg_split("/[^'-_A-Za-z0-9]+/", $string);

将使用非破折号(-)、下划线(_)、字母(小写或大写)或数字的分隔符将输入字符串分割为多个令牌。

而:

$tokens = explode(' ', $string);

将只使用空白作为分隔符将字符串分割为多个令牌。

[^'-_A-Za-z0-9]+的字面读数为:

匹配一个或多个非-_的单独字符,或字母a到Z(大写或非大写)或数字。

preg_split将根据与上面的匹配来分割输入,但是explode只会根据空白字面值进行分割。还有一些字符没有从正则表达式中排除,preg_split会拆分,但explode不会,所以结果数组可能是不同的。