我遇到了以下将字符串拆分为“令牌”的内容:
$tokens = preg_split("/[^\-_A-Za-z0-9]+/", $string);
有人可以向我解释这与此有何不同:
$tokens = explode(' ', $string);
任何帮助将不胜感激 :-)
我遇到了以下将字符串拆分为“令牌”的内容:
$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
不会拆分,因此生成的数组可能会有所不同。