3

ドメインを(preg_matchで)一致させたいのですが、サブドメインを除外したいのです。

boon.example.orgを除くexample.orgのすべてのサブドメインを照合したい:

私はこれを試しました:

$test = "boon.example.org";
$test2 = "null";
if(preg_match('#(?!boon)(\w+\.)?example\.org#', $test, $output)) {
    $test2 = $output[2] .'example.org';
}

ただし、test2の出力は次の とおりです。example.orgではなくoon.example.org

誰かが答えを持っていますか?

4

3 に答える 3

5

その正確なサブドメインのみを探している場合は、文字列boon.example.orgが存在するかどうかを確認できませんでしたか? このための正規表現では少しやり過ぎのようです。

とにかく、次の正規表現はあなたが望むことをするはずです:

.*(?<!\bboon\.|^.)example.org

または のsubdomain.example.orgサブドメインを除くすべてのサブドメインに対して返されます。boon.example.orgboon.example.org

于 2013-03-06T11:37:58.233 に答える
0

これを試して:

echo '<pre>';
$test = "boon.example.org";
$test2 = "null";
preg_match('/^(?!boon\.)([\w]+\.)?example\.org$/', $test, $output);
print_r($output);

これは、boonを除くすべてのサブドメインに一致します。

于 2013-03-06T11:05:46.097 に答える
0

この正規表現はあなたのために働くでしょう:

^(((?!boon).)+\.)?example\.org$

正規表現リンク

于 2013-03-06T11:12:32.793 に答える