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

によってドス・マッチ・パターンを実装する方法DOSファイル名のような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')); 

これは単なるパターンマッチングよりも単純なので、これは正規表現ではありません。私はここで正規表現を使うべき理由を見ないので、少なくとも​​はより効率的に行うべきです。

+0

'fnmatch()'について知りませんでした! – Mchl

+0

fnmatchは私が欲しかったことです、ありがとうm8。 – bajie

+2

@bajie:答えを受け入れることを忘れないでください – KingCrunch

関連する問題