用@符号匹配单词并忽略

时间:2015-02-27 20:48:11

标签: php regex

我正在编写一个贯穿用户注释的脚本,将注释分成单个单词,并将这些单词添加到mysql中的表中。原因是找到评论中使用最多的词语。

此外,我在添加到表之前将单词与要忽略的单词列表进行匹配。

我无法弄清楚的是,如何忽略任何带有@符号作为单词中字符的单词。

这是我目前所拥有的,除了匹配@

之外它的工作原理
$added_count=0;
$words_to_forget = array();
$forget_words = "SELECT forget FROM word_bank_forget";
    $result = $conn->query($forget_words) or die($conn->error.__LINE__);    
        while($row = $result->fetch_assoc())
            {
                $words_to_forget[] = $row['forget'];
            }

    $survey_words = "SELECT comments,clinic_id,sid FROM survey WHERE word_bank='0'";
        $result = $conn->query($survey_words) or die($conn->error.__LINE__);    
            while($row = $result->fetch_assoc())
                {
                    $comments = $row['comments'];
                    $clinic_id = $row['clinic_id'];
                    $sid = $row['sid'];
                    $wordChunks = explode(" ", $comments);
                    for($i = 0; $i < count($wordChunks); $i++){
                        $broken_word = strtolower($wordChunks[$i]);
                        $broken_word = str_replace(array('.', ''), '' , $broken_word);
                        $broken_word = str_replace(array(',', ''), '' , $broken_word);
                        if ($broken_word != '' ){
                            if (!in_array($broken_word, $words_to_forget)) {
                                mysql_query("INSERT into word_bank (word,clinic_id) values ('$broken_word','$clinic_id')");
                                $added_count++;
                                }
                        mysql_query("UPDATE survey SET word_bank='1' WHERE sid='$sid'");
                        }
                    }
                }

我尝试过使用正则表达式,但是无法使用它。 我可以将@符号与/ \ @ /匹配,但似乎无法告诉php如果匹配则忽略该单词。

也许是这些方面的东西(不工作):

$pattern = '/\@/';
if !preg_match($pattern, $broken_word){

}

任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

if (strpos($word, '@') !== false)