Laravel:使用替换第一个元素后的字符串
Laravel: using Replace String that acts After First element
我需要一个 str_replace 或任何在第一个元素之后起作用的东西,如下所示:
"Hello-World-I-am-Pr-Pro"
这就是我想要的结果:
"Hello-World I am Pr Pro"
PHP 正则表达式引擎将使用 preg_replace:
为您完成此操作
function replaceViaRegex($needle, $to, $haystack)
{
$regexStr = '/'.preg_quote($needle, '/').'/';
$result = preg_replace($regexStr, $to, $haystack, 1);
return $result;
}
$foo = "Hello-World-I-am-Pr-Pro";
$foo2 = replaceViaRegex('-', ' ', $foo);
echo $foo2;
或者,您可以
$foo = "Hello-World-I-am-Pr-Pro";
$regex = '/-/';
$foo2 = preg_replace($regex, ' ', $foo, 1);
...但这远没有那么灵活。甚至
$foo2 = preg_replace('/-/', ' ', "Hello-World-I-am-Pr-Pro", 1);
...但是我在过去让 preg_replace 工作时遇到了麻烦 w/out 一个变量所以我只是避免让它变得那么密集。
我把上面的功能写得非常清晰和简单,这样你就可以按照逻辑随意修改。如果您想要好的、可维护的代码,那么使用第一个版本比使用其他两个版本要好得多。
我需要一个 str_replace 或任何在第一个元素之后起作用的东西,如下所示:
"Hello-World-I-am-Pr-Pro"
这就是我想要的结果:
"Hello-World I am Pr Pro"
PHP 正则表达式引擎将使用 preg_replace:
为您完成此操作function replaceViaRegex($needle, $to, $haystack)
{
$regexStr = '/'.preg_quote($needle, '/').'/';
$result = preg_replace($regexStr, $to, $haystack, 1);
return $result;
}
$foo = "Hello-World-I-am-Pr-Pro";
$foo2 = replaceViaRegex('-', ' ', $foo);
echo $foo2;
或者,您可以
$foo = "Hello-World-I-am-Pr-Pro";
$regex = '/-/';
$foo2 = preg_replace($regex, ' ', $foo, 1);
...但这远没有那么灵活。甚至
$foo2 = preg_replace('/-/', ' ', "Hello-World-I-am-Pr-Pro", 1);
...但是我在过去让 preg_replace 工作时遇到了麻烦 w/out 一个变量所以我只是避免让它变得那么密集。
我把上面的功能写得非常清晰和简单,这样你就可以按照逻辑随意修改。如果您想要好的、可维护的代码,那么使用第一个版本比使用其他两个版本要好得多。