регулярные выражения в твиттере - PullRequest
1 голос
/ 11 августа 2010

Мне нужно 3 разных регулярных выражения

  • тот, который находит в начале строки 'D' и пробел, а затем имя, поэтому 'D patrickgates hello there' вернет 'D patrickgates' или, если все возможно, вернет просто 'patrickgates'
  • тот, который найдет знак @ и имя вместе в любом месте строки, поэтому '@patrickgates hello, world' сработает и вернет '@patrickgates' или, если это вообще возможно, выдаст просто 'patrickgates'
  • тот, который найдет 'RT' и пробел, а затем '@' и имя пользователя в начале строки, так что 'RT @patrickgates' будет работать

если возвращение только имени пользователя, а также истинности невозможно с одним регулярным выражением, тогда я мог бы использовать одно для сопоставления и другое, которое удалит «D», «@» или «RT», спасибо вы

(кстати, я использую AS3 для этого)

Ответы [ 2 ]

3 голосов
/ 11 августа 2010
  1. D patrickgates используйте ^D (\w+) для захвата 'patrickgates'
  2. @patrickgates hello, world используйте ^@(\w+) для захвата 'patrickgates'
  3. RT @patrickgates используйте `^ RT @ (\ w +) для захвата 'patrickgates'

Если вы хотите, чтобы одно регулярное выражение захватывало patrickgates из всех трех ваших примеров:

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

0 голосов
/ 28 апреля 2011
public function convertTwitterMsg (o:Object):void {
   trace('New Tweet: ' + o);
   var original:String = o.title;
   _tweet = original.replace(/(^|\s)@(\w+)/g, "$1@<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, вы также можете использовать spark, но это изменило ваш стиль текста в spark. _tweet это строка

Я скопировал и вставил функцию, используйте для вашего удобства.

...