gpt4 book ai didi

php - preg_split 反斜杠

转载 作者:可可西里 更新时间:2023-10-31 23:57:23 24 4
gpt4 key购买 nike

在我的 PHP 代码中,我在字符串中分配了带有命名空间的类名,例如:

$my_class_name; // = "Aaa\Bbb\Ccc"; // this is not in source code, just var dump

我只需要中间名,在我的例子中是“Bbb”。我试着用这个:

$result_array = preg_split("/\\/", $my_class_name);

但是,它不起作用。我需要在正则表达式 "/\\\/" 中使用三重反斜杠才能使其正常工作。我的问题是:为什么我需要其中三个?我总是通过加倍来逃避反斜杠特殊功能。

最佳答案

你想在你的正则表达式中有一个文字反斜杠,所以你必须转义它。但是然后你还想把它放在 PHP string 中,这意味着你必须再次逃脱它。

序列 \\\/ 被分解为

  • \\(一个文字反斜杠字符)和
  • \/(反斜杠后跟斜杠;根据 PHP 字符串转义规则,这不是有效的转义序列,因此被识别为对或字 rune 字 \/)

四个 反斜杠也将被转换为两个反斜杠字符,因此将模式指定为字符串文字 "/\\\\/" 等同于将其指定为“/\\\/”

但为什么要使用 preg_split 而不是 explode('\\', $my_class_name)

关于php - preg_split 反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9813410/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com