Получение элемента из сложной строки с помощью Regex

1

Я новичок в регулярном выражении, и я пытаюсь получить строку tumblr_nk8j5bEGc01u59obp (динамическую, а не статическую) снизу. Я не знаю, с чего начать, может кто-нибудь, пожалуйста, помогите мне? (Ява)

<embed type="application/x-shockwave-flash" src="https://secure.assets.tumblr.com/swf/audio_player.swf?audio_file=https%3A%2F%2Fwww.tumblr.com%2Faudio_file%2F80stmntsoundthingies%2F111871866039%2Ftumblr_nk8j5bEGc01u59obp&color=FFFFFF" height="27" width="207" quality="best" wmode="opaque"></embed>
  • 1
    Я бы проанализировал строку, используя Java вместо использования регулярных выражений. Пролистайте строку, пока не найдете «tumblr_», затем продолжайте, пока не нажмете «&».
Теги:

1 ответ

0
Лучший ответ

Я согласен с Mathemats, что я не буду использовать регулярное выражение для этой конкретной цели.

Я бы сделал что-то вроде следующего:

public static String isolateTumblrCodeFromURL(String url) {
    int start = url.indexOf("tumblr_");
    if (start == -1) return null;
    int end = url.indexOf('&', start);
    if (end == -1) return null;
    return url.substring(start, end);
}

Конечно, вы можете использовать регулярное выражение, но это кажется более простым и быстрым.

Кроме того, это работает только в том случае, если имеется только один экземпляр "tumblr_", которую вы ищете. Если вам нужно несколько, просто оберните эту логику в цикле, управляемом int start = url.indexOf("tumblr_"); start>=0; start = url.indexOf("tumblr_", start) int start = url.indexOf("tumblr_"); start>=0; start = url.indexOf("tumblr_", start) int start = url.indexOf("tumblr_"); start>=0; start = url.indexOf("tumblr_", start) и замените return add в вашу структуру данных.

  • 0
    Спасибо! я приму это, когда смогу

Ещё вопросы

Сообщество Overcoder
Наверх
Меню