了解preg_split vs split - 没有结束分隔符

时间:2018-01-30 08:59:48

标签: php split preg-split

$gridNumberParts = preg_split( '_', $gridPage);

我在尝试将所有“拆分”切换为“preg_split”之后收到以下错误

错误警告:preg_split():找不到结束分隔符'_'

这个错误究竟是什么? 是否有另一种方式/更好的方式来摆脱旧的“分裂”?

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

  

这个错误究竟是什么?

preg_split()的模式需要delimiters来检测表达式。

RewriteCond %{HTTP_HOST} !^([a-zA-Z0-9\-]+)\.example\.com

第一个字符和最后一个字符必须相同。

  

分隔符可以是任何非字母数字,非反斜杠,非空白字符。

然后... extra_deps: - ../testlib-1.0.0 ... 可以检测到modifiers,例如:

$pattern = "~[a-z]~" ;

答案 1 :(得分:0)

preg_split将PCRE字符串作为第一个参数(Perl Compatible Regular Expression),它必须具有定义正则表达式开始位置和结束位置的分隔符,通常你会找到用于此的斜杠(如此:'/_/')但您几乎可以使用任何字符作为分隔符。

当您使用分隔符作为正则表达式的一部分时,请务必使用反斜杠转义它或切换到另一个分隔符。

例如,在拆分路径字符串或网址时,如果要在每个斜杠上拆分,则应使用preg_split('{/}', $url);而不是preg_split('/\//', $url);之类的内容来提高可读性。

当您使用括号作为分隔符时,请务必使用开头的开头和结尾的结尾,如下所示:{_}左右<_>(两者都将在每个下划线上分开)