Extract all hashtags from text

From LemonWiki共筆
Jump to navigation Jump to search

使用 Regular expression 擷取文字中的 Hashtag ( 主題標籤)

資料預先處理

  • 因為連結包含 # 符號,所以需要事先移除連結文字。

擷取文字中的 Hashtag

  • 需要處理「標點符號與特殊字元(例如 $ 和 %)」[1]。僅處理部分符號的 PHP code: [2]:
preg_match_all('/\B(#[^\s|\-|-|,|,|\[|\]|『|』|/|~|~|'|"|`|\(|\)|(|)|【|】|《|》|「|」|\<|\>|\=|\{|\}|!|\!|、|?|\?|:|…|\:|;|#|\.|.|。|\$|%|&|\*|\+|,|@|\^|\||\/]+)/ui', $string, $matches);

說明

  • \B 比對非「英文字的邊界」[3][4],避免從 another#bad_hashtag 文字中擷取出 #bad_hashtag。
  • \s 空白字元 (Whitespace character)

還需要處理以下狀況

illegal Hashtag
#12345
#___
#_
#__123

legal Hashtag
#1_abc
#_abc

references

延伸閱讀

  1. 中文輸入法常用標點符號簡表
  2. Unicode 表情圖案(emoji ) + 特殊符號字元一覽表@WFU BLOG
  3. Regex Tutorial - Unicode Characters and Properties
  4. Unicode®字符百科