3

好的,不确定是愚蠢还是星期一。

其实很简单。我有一个文本框,我在其中输入文本。一个单词会用一个井号 (#) 标记,然后作为该句子的井号标签保存到数据库中。

现在,我的功能看起来像这样:

    public function getHashtag($text)
{
    print_r($text);
    preg_match_all('/(#\w+)/', $text, $hashTag);
    print_r($hashTag);
    die();
    if (isset($hashTag[0][0])) {
        $hashTag = $hashTag[0][0];
        return $hashTag;
    } else {
        return '';
    }

}

print_r 只是调试的东西。我想要实现的只是得到带有哈希的单词。效果很好,除非有人输入法语单词,其中包含 àèé 或其他字符。然后输出就停在第一个特殊字符处。

#dfsdfaàèé asda sda sd asd aArray ( [0] => Array ( [0] => #dfsdfa ) [1] => Array ( [0] => #dfsdfa ) )

有任何想法吗?:D

4

1 回答 1

7

只需使用此表达式/(#[^\s[:punct:]]+)/

读作“一个#加至少一个非空格或标点符号的字符”。

[:punct:]POSIX 字符类之一。

于 2012-07-30T09:51:26.423 回答