2013-09-24 34 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"); 
相關問題