如何去除字符串中的斜杠和它们之间的数字内容

How to Strip Slashes and the Numeric Content Between Them in a String

考虑以下字符串:

/0123456789/abcdefg

我需要删除两个斜杠之间的所有数字以及删除斜杠。我知道 preg_replace,但从未使用过此函数(我是 PHP 的新手)。我将如何为它制作正确的正则表达式?提前致谢。

没有preg_replace()的最简单方法:-

<?php

$url = "/0123456789/abcdefg";
echo $words = substr($url, strrpos($url, '/') + 1);

https://eval.in/857562

注意:- strrpos gets the position of the last occurrence of the slash; substr returns 该位置之后的所有内容。

strrpos 函数从 0 开始计算给定字符的位置,这就是为什么要添加 +1 以获得可以取出子字符串的实际位置

试试这个

<?php
$keep = "abcdefg";
$str = "/0123456789/";
echo chop($keep,$str);
?>

chop 函数接受一个字符串并从中删除某个值。 第一个参数 $keep 是您要保留的参数 函数中的第二个参数 $str 是您要删除的参数。 希望对您有所帮助

OP 的问题涉及与 preg_replace() 一起使用的 正则表达式 (正则表达式)来解决问题。方法如下:

<?php

$url = "/0123456789/abcdefg";

$regex= "~/\d+/~";

$replace = "";

echo preg_replace( $regex, $replace,$url );

live code.

请注意,正则表达式由一个正斜杠、一个或多个数字和另一个正斜杠组成。分隔符本身使用字符“~”。相反,如果它们由斜线组成,那么并且只有在那时才需要转义正斜线。

顺便说一句,您也可以使用 preg_split() 实现所需的输出,如下所示:

<?php

$url = "/0123456789/abcdefg";
list(,, $strData) = preg_split("~/~",$url );
echo $strData;

live code

在此解决方案中,url 字符串根据存在的正斜杠拆分为一个列表,该列表在捕获字母字符串时忽略无关数据。

更好的解决方案是使用 explode() 以便字符串可以包含更少、更多或相同数量的正斜杠。给定一个以字母字符结尾的字符串,可以编码如下:

   <?php

    $url = "/0123456789/abcdefg";
    $arrData = explode("/", $url );
    $dex = count($arrData) - 1;
    echo $arrData[ $dex ];

live code