2011-08-14 24 views
0
* represent anything 
? represent a character 

DOS匹配模式類似DOS的文件名如何實現由PHP

*.test.com將匹配aaa.test.com但不匹配test.com

一個DOS一樣的正則表達式*.test.com是PHP中的正則表達式/.*\.test\.com/類似

是有一個內置函數在php中測試類似於dos的正則表達式?

+0

是的。 preg_match() – Mchl

+0

preg_match是一個正常的正則表達式fnmatch是正確的 – bajie

+0

這是真的,但是您可以使用preg_match和簡單的str_replace來實現相同的結果。當KingCrunch發佈他的答案時,我實際上正在寫這篇文章。順便說一句:不要忘記接受他的答案。 – Mchl

回答

2

據我所見,你的情況glob()和/或fnmatch()將做到這一點。

$pattern = '*.test.com'; 
var_dump(fnmatch($pattern, 'aaa.test.com')); 
var_dump(fnmatch($pattern, 'test.com')); 

請注意,這不是正則表達式,因爲這只是一個更簡單的模式匹配。我沒有看到一個理由,爲什麼你應該在這裏使用正則表達式,因此至少​​應該更有效。

+0

不知道'fnmatch()'! – Mchl

+0

fnmatch是我想要的,謝謝m8。 – bajie

+2

@bajie:記得接受答案 – KingCrunch