2011-08-14 23 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