質問

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

以前に式を書いたことがないので、誰かがそれを確認したり、より良い解決策を推奨したりできることを望んでいます。

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

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

役に立ちましたか?

解決

正規表現を使用しないワンライナー!!!

$url = 'http://stackoverflow.com';
$d = array_shift( explode( '.', str_replace('www.', '', parse_url( $url, PHP_URL_HOST )) ) );
echo $d;

他のヒント

PHPの parse_url()関数を検討しましたか?

所有しているものがURLであり、ドメインが.comで終わることがわかっている場合は、

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

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

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

preg_match('#https?://(?:www.)?(.*?)\.com#i', $str, $match);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top