2013-09-24 24 views
-4

首先感谢尝试帮助我!如何使用正则表达式从路径中提取字符串?

我需要从这个路径目录提取字符串“视频”:

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

如何着手解决这个问题呢?

+0

得到答案你应该发布一些代码来证明你已经尝试过自己做这件事。这是一个问答网站,但有自己的规则.http://stackoverflow.com/help/on-topic。阅读并申请。 – zubergu

回答

1

问题的标题明确指出,他希望一个正则表达式的解决方案。

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

/(\w+)\.php$/ 
+0

这个问题显然是一个X-Y问题:http://mywiki.wooledge.org/XyProblem –

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" 
+0

是的,你是对的。让我们希望我们的答案将帮助OP。 – BlitZ

+0

感谢帮助,但我需要使用Sublime Text 2,在Snippet文件中,我需要正则表达式来完成它... –

+0

sublime文本在其核心中使用python。有python可以做到这一点。 –

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

如此有趣的竞争问题在前几分钟如何演变 –

+0

感谢帮助,但我需要使用Sublime Text 2,在Snippet文件中,我需要正则表达式来做到这一点...... –

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" 
+0

你在做什么?这是一个PHP和Joomla!题。 –

+0

阅读OP对其他答案的评论。这是一个崇高的文字问题。 –

+0

好吧,我现在看到它:)超级怪异:) –

0

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

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