我需要能夠提取完整文件路徑和名稱的片段以插入到數據庫中。爲此,我在PHP中使用preg_match。我也在模式中給每個片段一個名稱,以便匹配數組是一個關聯的數組。這裏有一個例子:PHP preg_match:匹配除字符串之外的所有內容
$subject = 'c:/files/uk/kent/ashford/12345_Joe_Blogs_20120202120000.pdf';
$pattern = '/[\/\\\\](?<country>.*)[\/\\\\](?<county>.*)[\/\\\\](?<town>.*)[\/\\\\](?<id>.*)_(?<first_name>.*)_(?<last_name>.*)_(?<datetime>.*)\.(?<file_extension>pdf)/';
preg_match($pattern, $subject, $matches);
foreach($matches as $key => $match)
{
if(is_numeric($key))
unset($matches[$key]);
}
print_r($matches);
它創建:
Array
(
[country] => files/uk
[county] => kent
[town] => ashford
[id] => 12345
[first_name] => Joe
[last_name] => Blogs
[datetime] => 20120202120000
[file_extension] => pdf
)
我的問題是該國包括一個我想之前的所有文件夾。我只想'英國'部分,而不是'文件/英國'。所以我需要知道如何匹配除'/'或'\'之外的所有內容。 'c:/ files'可以是配置中預先設置的任何東西,所以我不想在模式中包含該變量或任何其他PHP變量。
我已經看過谷歌和類似的,但我似乎無法找到我正在尋找的答案。
在此先感謝您的幫助。