Preg匹配失败简单比较

时间:2018-03-10 17:07:04

标签: string preg-match

我正在尝试使用下面的代码来比较两个字符串。 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

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);