0

私は「stackoverflow」の部分だけを吐き出し、wwwを吐き出さない正規表現を探していました。または.comなど。私が見つけたのは、URLが有効かどうかを確認することだけでした...私はphpのURLフィルターを使用して、現在どのサイトであるかを判断しようとしています。

私はこれまで式を書いたことがないので、誰かがそれをチェックしたり、より良い解決策を推奨したりできることを願っています。

preg_match('@^(?:http://)(?:www.)?([^.]+)@i', $url, $matches)

編集:私が扱っているすべてのURLは、それが役立つ場合は.comです

4

4 に答える 4

5

PHP のparse_url()関数について考えたことはありますか?

于 2009-11-28T20:14:59.783 に答える
2

正規表現を使わずにワンライナー!!!

$url = 'http://stackoverflow.com';
$d = array_shift( explode( '.', str_replace('www.', '', parse_url( $url, PHP_URL_HOST )) ) );
echo $d;
于 2009-11-28T20:24:46.863 に答える
0
preg_match('#https?://(?:www.)?(.*?)\.com#i', $str, $match);
于 2009-11-28T20:03:09.233 に答える
0

あなたが持っているものがURLであり、ドメインが.comで終わることがわかっている場合は、次のような単純なものです

preg_match('#([^\.]*)\.com#', $url, $matches);

トリックを行う必要があります。

これは次のようなドメインでは失敗しwww.com.foo.comますが、状況によっては十分かもしれません。

于 2009-11-28T20:02:28.810 に答える