使用Regex从复杂字符串中获取项目

时间:2015-03-17 23:27:20

标签: java regex

我是regex的新手,我正试图从下面获取字符串tumblr_nk8j5bEGc01u59obp(动态,而不是静态)。我真的不知道从哪里开始,有人可以帮帮我吗? (Java)的

<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 个答案:

答案 0 :(得分:0)

我同意Mathemats的说法,我不会将regex用于此特定用途。

我会做以下事情:

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)控制的循环中,并将return s替换为add s到您选择的数据结构。