如何使用正则表达式从路径中提取字符串?

时间:2013-09-24 18:43:24

标签: regex string joomla sublimetext2

首先,谢谢你帮助我!

我需要从此路径目录中提取字符串“videos”:

/D/Servers/Domain/www/domain.com/administrator/components/com_videos/videos.php

如何解决此问题?

5 个答案:

答案 0 :(得分:3)

我不认为那里需要正则表达式。

一种方法是使用basename() + strstr()函数:

<?php    
$path = '/D/Servers/Domain/www/domain.com/administrator/components/com_videos/videos.php';

echo strstr(basename($path), '.', true);
?>

节目:

videos

另一种方法是使用pathinfo

<?php
$path = '/D/Servers/Domain/www/domain.com/administrator/components/com_videos/videos.php';

echo pathinfo($path, PATHINFO_FILENAME);
?>

节目:

videos

答案 1 :(得分:1)

如果您知道扩展程序将始终为.php

http://php.net/manual/en/function.basename.php

$path = "/D/Servers/Domain/www/domain.com/administrator/components/com_videos/videos.php";
basename($path, ".php"); // returns "videos.php"

或者,如果您不知道扩展名:

http://www.php.net/manual/en/function.pathinfo.php

$path = "/D/Servers/Domain/www/domain.com/administrator/components/com_videos/videos.php";
$pathinfo = pathinfo($path);
$pathinfo['filename']; // equals "videos"

答案 2 :(得分:1)

问题的标题清楚地表明他想要一个正则表达式解决方案。

所以你正在寻找的正则表达式是:

/(\w+)\.php$/

答案 3 :(得分:0)

好吧,因为这不是一个php问题,而是一个sublimetext问题,这实际上是一个python问题:

import os
path = "/D/Servers/Domain/www/domain.com/administrator/components/com_videos/videos.php"
os.path.splitext(os.path.basename(path))[0] # outpus "videos"

答案 4 :(得分:0)

我建议使用JPATH rathing而不是定义完整路径,因为它使用Joomla编码标准:

$path = JPATH_ROOT . "/administrator/components/com_videos/videos.php";
basename($path, ".php");