我正在尝试编写一个正则表达式,我可以将字符串拆分为标记。过去常常这样做:
$rawtokens = split("[^-_A-Za-z0-9]+", $string);
但是现在split()已被弃用(建议使用preg_split),这不起作用:
$rawtokens = preg_split("[^-_A-Za-z0-9]+", $string);
我得到的错误是+ \是一个未知的修饰符。从split到preg_split的迁移有什么变化?
答案 0 :(得分:2)
PCRE正则表达式需要delimiters:
$rawtokens = preg_split("/[^-_A-Za-z0-9]+/", $string);
^ ^
答案 1 :(得分:0)
尝试转义-
并添加分隔符:
$rawtokens = preg_split("/[^\-_A-Za-z0-9]+/", $string);
答案 2 :(得分:0)
您可以使用T-Regx tool,并且不需要定界符:)
pattern('[^-_A-Za-z0-9]+')->split($string);