2012-06-12 48 views
0

我想查找文本文件名(例如name.txt)。 你能否建議我在preg_match_all()中使用正則表達式? 我創建一些正則表達式表達:在文本文件名中查找,preg_match_all

preg_match_all( 「[A-ZA-Z0-9 _] [。]/^ + [A-ZA-Z0-9] {1,3} $ /」, $ string,$ w);

但是,總是得到一個空的結果。

+0

我認爲你應該使用的分隔符'^'和'$'因爲我猜你是做'preg_match_all'到文本或句子。 –

回答

0

只是刪除了這些符號(^和$)reg表達式

這個工作對我來說:

preg_match_all("![a-zA-Z0-9_.]+[.][a-zA-Z0-9]{1,3}!", $string, $w); 

^- 匹配字符串的開頭。

$ - 匹配字符串的末尾。

如果您將文件放置在文本中,則可以省略此符號。

我會使用以下reg表達式,因爲你寫了一個發現與延長1至3個字母組成的文件,但通常是擴展包含3個字母(.DOC,TXT)

這裏是工作示例:

$string=" some text name.txt some text hello.doc"; 
preg_match_all("![a-zA-Z0-9_.]+[.][a-zA-Z0-9]{3}!", $string, $w); 
print_r($w); 

輸出:

Array ([0] => Array ([0] => name.txt))