2011-08-13 8 views
0

php.netにはparse_urlpreg_match、および一般的にregular expressionsの参考資料があります。私はSOここで見つかったこのスニペットを理解しようとしています:このdomain_extractorの良い参考資料はどこにありますか?

私はこのビットexcecptスニペットのすべてに精通してる:

?P<domain> 

この部分は全体との関係で何をします。特に '?P'。私は<domain>が返される連想配列のキーを定義していると仮定しています。

function getDomain($url) 
    { 
    $pieces = parse_url($url); 
    $domain = isset($pieces['host']) ? $pieces['host'] : ''; 
    if(preg_match('/(?P<domain>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $domain, $regs)) 
     { 
     return $regs['domain']; 
     } 
    return false; 
    } 

答えて

0

?P<domain>部分は、そのグループの名前を定義します。つまり、$regs[0]の代わりに$regs['domain']という名前でアクセスすることができます。大規模な正規表現では、各グループに名前を付けることで、何が起こっているのかを簡単に理解できるので便利です。

+0

そうですか?Pはこれの一部です...これはphp.netのところで私が上に提供したリンクを持っている場所です。 –

+0

上記リンクされたpreg_matchのドキュメントページでは、使用されている名前付きサブパターンが例4に示されています。これらはPHPに固有ではありませんが、ここで少し説明します:http://www.regular-expressions.info/named.html – EdoDodo

関連する問題