2011-09-23 74 views
2

下面是我很快想到的。它的工作原理與regexKitLite在iPhone上:解析Twitter #hashtags和@users的最佳正則表達式

#define kUserRegex @"((?:@){1}[0-9a-zA-Z_]{1,15})"; 

的Twitter只允許字母/數字,下劃線_,和15個字符一個最大(不@)。我的正則表達式看起來不錯,但報告電子郵件地址的誤報。

#define kHashtagRegex @"((?:#){1}[0-9a-zA-Z_àáâãäåçèéêëìíîïðòóôõöùúûüýÿ]{1,140})"; 

kHashtagRegex作品有加劇的話,但它是不夠的,UTF-8的話。 什麼是hashtag的「技術規格」?

有什麼可以用來解析這些參考的地方嗎?或者你有關於如何增強這個正則表達式的建議?

回答

4

我不知道這是否是完整的,卜這是我會做什麼:


對於用戶名,@之前添加字符串的空格/開始檢查消除電子郵件(?:^|\s)

#define kUserRegex @"((?:^|\s)(?:@){1}[0-9a-zA-Z_]{1,15})"; 

的哈希標籤,我只想說\ w或\ d

#define kHashtagRegex @"((?:#){1}[\w\d]{1,140})"; 
+0

這適用於我的標籤可以由任何UTF-8字符,所以\ w \ d很好。 –

0
REGEX_HASHTAG = '/(^|[^0-9A-Z&\/\?]+)([##]+)([0-9A-Z_]*[A-Z_]+[a-z0-9_üÀ-ÖØ-öø-ÿ]*)/iu';` 
+0

謝謝你,但你可以引用你的消息來源/解釋它是否屬於你的消息。 –