1

我正在尝试编写一个正则表达式,我可以用它将字符串拆分为标记。这曾经有效:

$rawtokens = split("[^-_A-Za-z0-9]+", $string);

但是现在 split() 已被弃用(建议使用 preg_split ),这不起作用:

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

我得到的错误是 +\ 是一个未知的修饰符。从 split 到 preg_split 的迁移发生了什么变化?

4

3 回答 3

2

您需要PCRE 正则表达式的分隔符:

$rawtokens = preg_split("/[^-_A-Za-z0-9]+/", $string);
                         ^               ^
于 2011-10-31T22:58:56.527 回答
0

尝试转义-并添加分隔符:

$rawtokens = preg_split("/[^\-_A-Za-z0-9]+/", $string);
于 2011-10-31T23:02:20.253 回答
0

您可以使用T-Regx 工具,并且不需要分隔符 :)

pattern('[^-_A-Za-z0-9]+')->split($string);
于 2018-10-09T14:48:22.620 回答