AS3 - получить теги из текста - PullRequest
0 голосов
/ 19 марта 2012

Как отследить теги с помощью хэша (# Пример #FOO #hello_world # foo-bar # 2012) в конце текста, но не те, которые находятся внутри текста?

Lorem ipsum dolor http://www.example.com/#about Contetur #Sit_amet, Condeturur sadipscing, sed #diamnonumy eirmod tempor #invidunt ut labore # Пример #FOO #hello_world # foo-bar # 2012

Спасибо. Ули

Ответы [ 3 ]

0 голосов
/ 19 марта 2012

Это очень похоже на подход sub_stantial, хотя я всегда чувствую, что лучше всего работать с массивами:

function returnEndHashtags(message:String):Array
{
    var lastHashtagIndex:int;
    var words:Array = message.split(" ");
    var l:int = words.length;

    for (var i = l-1; i > -1; i--)
    {
        if (!(words[i].toString().charAt(0) == "#"))
        {
            lastHashtagIndex = i + 1;
            break;
        }
    }

    return words.slice(lastHashtagIndex);
}
  1. Создать массив слов из текста.
  2. Итерация с конца массива, поиск последнего слова, начинающегося с "#".
  3. Возвращает массив слов от последнего слова, начинающегося с "#", до конца массива.

Будем надеяться, что появится мастер и расскажет, как это сделать с помощью регулярных выражений.

0 голосов
/ 19 марта 2012

Используйте это регулярное выражение, чтобы найти список слов с хеш-тегами в конце:

/(\s?#([\w-])+)+$/g

Затем используйте это, чтобы найти все теги внутри него:

/#[\w-]+/g

Как всегда, обратитеськ документам для подробностей о том, как использовать регулярные выражения и когда-либо превосходным RegExr для быстрого и грязного тестирования.

0 голосов
/ 19 марта 2012

Алгоритм должен выглядеть следующим образом:

  1. Начать чтение с конца строки
  2. Прочитать слово (проверьте пробел, чтобы получить слово)
  3. Проверьте наличие «#» в качестве первого символа этого слова
  4. Если да, добавьте его в список хэш-тегов, перейдите к шагу 2
  5. Иначе, выйдите из
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...