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

时间:2012-07-30 09:49:54

标签: 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 '';
    }

}

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

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

任何想法? :d

1 个答案:

答案 0 :(得分:7)

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

读为“A #加上至少一个不是空格或标点符号的字符。”

[:punct:]POSIX character classes之一。