【问题标题】:understanding preg_split vs split - No ending delimiter理解 preg_split vs split - 没有结束分隔符
【发布时间】:2018-07-09 02:29:32
【问题描述】:
$gridNumberParts = preg_split( '_', $gridPage);

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

错误警告:preg_split():未找到结束分隔符“_”

这个错误到底是什么? 有没有另一种方式/更好的方式来取代旧的“分裂”?

感谢您的帮助

【问题讨论】:

标签: php split preg-split


【解决方案1】:

这个错误到底是什么?

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

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

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

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

那么preg_split可以检测到modifiers比如:

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

【讨论】:

    【解决方案2】:

    preg_split 将 PCRE 字符串作为第一个参数(Perl 兼容的正则表达式),它必须具有定义正则表达式开始和结束位置的分隔符,通常你会发现用于此的斜杠(如下所示:@ 987654322@) 但您几乎可以使用任何字符作为分隔符。

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

    例如,在拆分路径字符串或 URL 时,如果您想在每个斜杠上进行拆分,您应该使用 preg_split('{/}', $url); 而不是 preg_split('/\//', $url); 来提高可读性。

    当您使用方括号作为分隔符时,请务必在开头使用开头,在结尾使用结尾,例如:{_}<_>(两者都会在每个下划线处分开)。

    【讨论】:

      猜你喜欢
      • 2015-07-31
      • 2016-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-21
      • 2013-06-15
      • 1970-01-01
      • 2018-04-27
      相关资源
      最近更新 更多