php正则表达式域字符串是否有www和顶级域 当我谈到正则表达式时,我是一个业余爱好者,但我认为我有以下三个领域 www.google.com www.google.co.uk google.com

php正则表达式域字符串是否有www和顶级域 当我谈到正则表达式时,我是一个业余爱好者,但我认为我有以下三个领域 www.google.com www.google.co.uk google.com,php,regex,string,dns,Php,Regex,String,Dns,我想创建一些正则表达式来测试域名是否有www和.co.uk或.com 有人知道一些正则表达式会测试这个吗?你不需要正则表达式,你可以使用据说比正则表达式更快的strpos if ( strpos('www.', $mystring) !== false ) { //www was found in the string } else { //www was not foun in the string } 如果你真的想慢一点,使用正则表达式,你可以像这样测试所有的正则表达式 p

我想创建一些正则表达式来测试域名是否有www和.co.uk或.com


有人知道一些正则表达式会测试这个吗?

你不需要正则表达式,你可以使用据说比正则表达式更快的strpos

if ( strpos('www.', $mystring) !== false ) {
    //www was found in the string
} else {
    //www was not foun in the string
}
如果你真的想慢一点,使用正则表达式,你可以像这样测试所有的正则表达式

preg_match('/www|\.com|\.co\.uk/', $mystring);
例如,如果您不想为www应用与.com不同的逻辑,您可以使用

preg_match('/www/', $string);
preg_match('/\.com/', $string);
preg_match('/\.co\.uk/', $string);

你不需要正则表达式,你可以使用strpos,据说它比正则表达式快

if ( strpos('www.', $mystring) !== false ) {
    //www was found in the string
} else {
    //www was not foun in the string
}
如果你真的想慢一点,使用正则表达式,你可以像这样测试所有的正则表达式

preg_match('/www|\.com|\.co\.uk/', $mystring);
例如,如果您不想为www应用与.com不同的逻辑,您可以使用

preg_match('/www/', $string);
preg_match('/\.com/', $string);
preg_match('/\.co\.uk/', $string);
试试这个:

/^www.*(?:com|co\.uk)$/
试试这个:

/^www.*(?:com|co\.uk)$/
简单的

有条件的

$ar = array();
$t = array("www.google.com","www.google.co.uk","google.com","www.google");
foreach ($t as $str) {
    switch (true) {
        case preg_match('/^www\.(.*)$/',$str) :
        // code
        case preg_match('/^(.*)(\.co.uk)$/',$str) :
        // code
        case preg_match('/^(.*)(\.com)$/',$str) :
        // code
        break;
    }
}
简单的

有条件的

$ar = array();
$t = array("www.google.com","www.google.co.uk","google.com","www.google");
foreach ($t as $str) {
    switch (true) {
        case preg_match('/^www\.(.*)$/',$str) :
        // code
        case preg_match('/^(.*)(\.co.uk)$/',$str) :
        // code
        case preg_match('/^(.*)(\.com)$/',$str) :
        // code
        break;
    }
}

从你的问题中我了解到,域名需要以www开始,以.co.uk或.com结束。下面是RegExp:

<?php
    $domains = array(
        "www.google.com",
        "www.google.co.uk",
        "google.com"
    );
    foreach($domains as $domain){
        echo sprintf(
            "%20s -> %d\n",
            $domain,
            preg_match("@^www\\..+(\\.co\\.uk|\\.com)$@", $domain)
        );
    }
?>

从你的问题中我了解到,域名需要以www开始,以.co.uk或.com结束。下面是RegExp:

<?php
    $domains = array(
        "www.google.com",
        "www.google.co.uk",
        "google.com"
    );
    foreach($domains as $domain){
        echo sprintf(
            "%20s -> %d\n",
            $domain,
            preg_match("@^www\\..+(\\.co\\.uk|\\.com)$@", $domain)
        );
    }
?>

你真的需要使用正则表达式吗?你真的需要使用正则表达式吗?