我想要比较两个字符串。
string1 = www.domain.com
string2 = *.domain.com
通常,如果我们使用if ($string1 == $string2)..
这些不匹配,因为它们不相等,但是,因为string2是一个通配符,我希望它是一个匹配。
条件(S)
*.domain.com
应与***anything**.domain.com*
*.domain.com
应与*domain.com*
或*something.adifferent.com*
.com, .net, .org. .com.au
等。我怎样才能做到这一点?
答案 0 :(得分:1)
我不确定你在问题中说的2点,但我认为你需要这样做: -
<?php
$string1 = '*.domain.com';
$string2 = 'www.domains.com';
$pattern = 'domain'; // put any pattern that you want to macth in both the string.
if(preg_match("~\b$pattern\b~",$string1) && preg_match("~\b$pattern\b~",$string2) && substr_count($string1,'.') == substr_count($string2,'.')){
echo 'matched';
}else{
echo 'not matched';
}
?>
输出: - http://prntscr.com/7alzr0
如果string2
转换为www.domain.com
,那么
注意: - 1.如果你想要下面也匹配,那么去找给定的条件。
example:--
$string1 = '*.domain.com';
$string2 = 'abc.login.domain.com';
if(preg_match("~\b$pattern\b~",$string1) && preg_match("~\b$pattern\b~",$string2) && substr_count($string1,'.') <= substr_count($string2,'.')){