我正在尝试使用下面的代码来比较两个字符串。 preg_match doc页面说“如果模式与给定主题匹配,则preg_match()返回1”。如输出所示,即使字符串不同,结果为1?请解释我的错误。
$cmp_text = 'sue, smith';
$text = 'sue, smith shelly';
$pos = preg_match('/' . $cmp_text . '/', $text);
if ($pos == 1) {
echo 'matched: ' . $cmp_text . ' is the same as ' . $text . '<br>';
} else echo 'no match';
echo 'pos '.$pos;
以上的输出是
matched: sue, smith is the same as sue, smith shelly
pos 1
答案 0 :(得分:1)
您传递给preg_match的内容为/sue, smith/
您与sue, smith
中的sue, smith shelly
匹配find a match
您可以add anchors作为开始^
和结束字符串$
。
然后传递给preg_match的是模式/^sue, smith$/
尝试更新此行:
$pos = preg_match('/' . $cmp_text . '/', $text);
到这一行:
$pos = preg_match('/^' . $cmp_text . '$/', $text);