2012-07-30 101 views
2

好吧,不知道如果愚蠢或只是星期一。PHP的正则表达式标签和特殊字符

其实很简单。我有一个文本框,我在其中输入文本。一个单词用一个散列(#)标记,然后作为该句子的标签被保存到DB中。

现在,我的功能可按如下所示:

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

回答

6

只要使用这个表达式/(#[^\s[:punct:]]+)/

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

[:punct:]POSIX character classes之一。

+0

托马拉克先生,我感谢你的回答! :D这就是它。需要更多的咖啡!谢啦! – yogee 2012-07-30 09:58:25