我需要将字符串Live-tv-channel-nbc-130pm-1000pm-s2-1.html
转换为Live-tv-channel-nbc
,也就是说我需要删除部分130pm-1000pm-s2-1.html(这些值是动态值)
我尝试了低于代码
$str = "Live-tv-channel-nbc-130pm-1000pm-s2-1.html";
$title = preg_replace("/-(.*?)-(.*?)-(.*?)-('d+).html$/","",$str;
echo $title;
我读到堆栈溢出,在末尾添加$将从右到左读取str,但它似乎不起作用。
注意:此外,我将使用此正则表达式获取值130pm、1000pm、s2、1(这是动态值)
作为Regex的替代方案,您可以使用爆炸和array_chunk 的直接方法来实现这一点
$strArray = explode("-", "Live-tv-channel-nbc-130pm-1000pm-s2-1.html");
$arrayparts = (array_chunk($strArray, 4));
echo implode("-", $arrayparts[0]);
您可以使用以下短regex来删除最后四个连字符分隔的部分和".html"文件扩展名:
/(?:-[^-]+){4}'.html$/
一个非捕获组((?:
…)
),由一个连字符(-
)和一个或多个非连字符([^-]+
)组成,重复四次({4}
),然后是一个点号('.
-注意,该点号已转义!)和html
,最后是行尾($
)。