考虑以下字符串:
/0123456789/abcdefg我需要删除两个斜杠之间的所有数字,以及删除斜杠,也。我知道preg_replace,但从未使用过这个函数(这是PHP的新手)。我该如何做出正确的判断呢?提前谢谢。
发布于 2017-09-08 02:16:27
发布于 2017-09-08 03:17:49
尝尝这个
<?php
$keep = "abcdefg";
$str = "/0123456789/";
echo chop($keep,$str);
?>chop函数接受字符串并从其中移除某个值。第一个参数$keep是您希望在函数中保留第二个参数$str的参数,是您想要删除的参数。我希望这能帮到你
发布于 2017-09-08 18:32:03
OP的问题涉及一个正则表达式(regex),用于preg_replace()来解决这个问题。下面是操作步骤:
<?php
$url = "/0123456789/abcdefg";
$regex= "~/\d+/~";
$replace = "";
echo preg_replace( $regex, $replace,$url );请参阅现场代码。
请注意,regex由一个正斜杠组成,后面是一个或多个数字,后面是另一个正斜杠。分隔符本身使用字符"~“。如果它们是由斜杠组成的,那么也只有这样,人们才需要逃避正切斜杠。
顺便说一句,您还可以使用preg_split()实现所需的输出,如下所示:
<?php
$url = "/0123456789/abcdefg";
list(,, $strData) = preg_split("~/~",$url );
echo $strData;请参阅活码
在此解决方案中,当存在正斜杠时,url字符串被拆分为一个列表,该列表在捕获字母字符串时忽略无关的数据。
更好的解决方案需要使用same (),这样字符串包含的正斜杠就可能更少、更多或相同。如果字符串以字母结尾,则可以编写如下代码:
<?php
$url = "/0123456789/abcdefg";
$arrData = explode("/", $url );
$dex = count($arrData) - 1;
echo $arrData[ $dex ];请参阅活码
https://stackoverflow.com/questions/46107555
复制相似问题