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

에 의해 도스 일치하는 패턴을 구현하는 방법을도스 파일 이름으로 PHP

*.test.comaaa.test.com 일치하지만 정규 표현식 *.test.com

는 PHP에서 정규 표현식 /.*\.test\.com/와 유사한처럼하지 test.com

도스 일치 php에서 dos-like regexp를 테스트하는 내장 함수가 있습니까?

+0

예. preg_match() – Mchl

+0

preg_match는 정규 표현식입니다. fnmatch는 정확합니다. – bajie

+0

그렇지만 동일한 결과를 얻으려면 간단한 str_replace와 함께 preg_match를 사용할 수 있습니다. KingCrunch가 대답을 올렸을 때 나는 실제로 이것을 쓰고있었습니다. BTW : 그의 대답을 받아 들일 것을 잊지 마십시오. – Mchl

답변

2

귀하의 사례에서 볼 수있는 한 glob() 및/또는 fnmatch()입니다.

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

이것은 정규식이 아니라는 점에 유의하십시오. 이는 훨씬 간단한 패턴 매칭에 불과하기 때문입니다. 왜 여기에 정규식을 사용해야하는지 이유가 보이지 않습니다. 따라서 적어도 fnmatch()은 더 효율적으로해야합니다.

+0

'fnmatch()'에 대해 몰랐습니다! – Mchl

+0

fnmatch는 내가 원했던 것입니다. 감사합니다 m8. – bajie

+2

@bajie : 답변을 수락하는 것을 잊지 마십시오. – KingCrunch

관련 문제