如何使用“\”拆分字符串以及拆分的最佳选项是什么

我试图拆分这个字符串,只得到“测试”这个词


App\Http\Controllers\TestController

我想要做的是使用“\”“爆炸”,但我认为该字符会转义引号。我怎样才能使用那个字符?


我得到了一个解决方案,但使用了比必要更多的代码行。我知道应该有更好的解决方案。


 $path = "App\Http\Controllers\TestController";

 $arrayStr = explode("\Test", $path);

 $word = explode('Controllers', $arrayStr[1]);

 $correctWord = implode($word);

 $correctWord = substr($correctWord, 1);

我是使用 php 的新手,所以任何建议都不仅仅是惠康。


编辑:我忘了指定我想获取 Controller 之前和最后一个 .


HUX布斯
浏览 168回答 3
3回答

慕码人8056858

使用正则表达式查找最后一个反斜杠和单词“Controller”之间的单词$path = "App\\Http\\Controllers\\TestController";if( preg_match('~\\\\([^\\\\]+)Controller~', $path, $m) ) {    echo $m[1];}else {    echo 'Not found';}

慕工程0101907

您遇到的问题是反斜杠转义了分隔符字符串的结束引号。$path_segments = explode("\", $path);语法错误也是如此。幸运的是,您还可以转义转义字符。(单引号或双引号的工作方式相同。)$segments = explode('\\', $path);然后使用substr.$controller = substr(end($segments), 0, -10);(-10 指的是“控制器”的长度。)

互换的青春

我建议使用正则表达式来实现这一点;您可以在一行中使用preg_match():$path = "App\Http\Controllers\TestController";preg_match('/Test/', $path, $correctWord); // 'test'这可以在这里看到。
打开App,查看更多内容
随时随地看视频慕课网APP