2010-08-10 66 views
1

我需要3個不同的正則表達式Twitter的正則表達式

  • 一個發現在字符串「d」和空間的開始,然後一個名字,那麼「d patrickgates你好」將返回「d patrickgates ',或者如果所有可能的返回只是'patrickgates'
  • 一個可以在字符串的任何位置一起找到@符號和名稱,所以'@patrickgates hello,world'將工作並返回'@patrickgates',或者完全可能會返回只是'patrickgates'
  • 一個會發現'RT'和一個空格,然後'@'和字符串開頭的用戶名'RT @patrickgates'會工作

如果與一個正則表達式只返回用戶名,也成爲真正是不可能的,那麼我可以用一個匹配,而這將刪除‘d’或「@ 「或者 'RT',謝謝

(僅供參考,我使用AS3做到這一點)

+0

以供將來參考結賬這個創建正則表達式的好工具http://gskinner.com/RegExr/ – Allan 2010-08-11 12:04:59

回答

3
  1. D patrickgates使用^D (\w+)捕捉 'patrickgates'
  2. @patrickgates hello, world使用^@(\w+)捕捉 'patrickgates'
  3. RT @patrickgates使用`^ RT @(\ w +)來捕獲 'patrickgates'

如果你想有一個單一的正則表達式所有你的三個例子捕捉patrickgates

^(?:D |@|RT @)(\w+)

+0

非常感謝你 – 2010-08-10 22:55:32

+0

'soright ...感謝您的「檢查」 – dawg 2010-08-10 23:07:20

0
public function convertTwitterMsg (o:Object):void { 
    trace('New Tweet: ' + o); 
    var original:String = o.title; 
    _tweet = original.replace(/(^|\s)@(\w+)/g, "[email protected]<a href=\"http://www.twitter.com/$2\">$2</a>"); 
    _final = _tweet.replace(/(^|\s)#(\w+)/g, "$1#<a href=\"http://search.twitter.com/search?q=%23$2\">$2</a>"); 
    ta.htmlText = _final; 
} 

ta應該是你的mx:TextArea的id,你也可以使用spark,但它改變了你在spark中設置文本樣式的方式。 _tweet是一個字符串

我複製粘貼的功能,使用在你自己的方便。

相關問題