PHP正则表达式标签和特殊字符

yog*_*gee 3 php regex character-encoding

好吧,不确定是愚蠢还是只是星期一.

它实际上非常简单.我有一个文本框,我在其中输入Text.一个单词被标记为哈希(#),然后将其作为该句子的主题标签保存到数据库中.

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

    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 '';
    }

}
Run Code Online (Sandbox Code Playgroud)

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

#dfsdfaàèé asda sda sd asd aArray ( [0] => Array ( [0] => #dfsdfa ) [1] => Array ( [0] => #dfsdfa ) )
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?:d

Tom*_*lak 7

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

读作"A #plus至少一个不是空格或标点符号的字符".

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