2012-07-30 127 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