如何使用正则表达式查找特定的URL?

时间:2011-05-11 19:29:52

标签: java regex

我使用URLConnection连接到一个站点,我正在寻找的结果是这些括号内的url:callback_request("https://secure.runescape.com/m=displaynames/s=bOVZmsrjbNQzntbDei*324JUo*3ozJ7hR*h1KNlxc6kPaBeKCBrdKIxD*edhi4qH/check_name.ws?displayname=" + escape(text), handleResult);

我遇到的问题是:s=bOVZmsrjbNQzntbDei*324JUo*3ozJ7hR*h1KNlxc6kPaBeKCBrdKIxD*edhi4qH每次都是随机的 - 这是会话。

如何使用正则表达式扫描页面并查找https://secure.runescape.com/m=displaynames/(random_session_id)/check_name.ws?displayname=

3 个答案:

答案 0 :(得分:1)

类似的东西:

"https://secure\.runescape\.com/m=displaynames/s=[a-zA-Z1-9*]+/check_name\.ws\?displayname="

答案 1 :(得分:1)

如果你知道displayname将是最后一个,你可以

String displayName = url.split("displayname=")[1];

答案 2 :(得分:1)

试试这个:

import java.util.regex.Pattern;

public class Regex {
    public static void main(String[] args) 
    {
        Pattern p = Pattern.compile("https://secure\\.runescape\\.com/m=displaynames/.*/check_name\\.ws\\?displayname=\\?");
        System.out.println(p.matcher("https://secure.runescape.com/m=displaynames/s=bOVZmsrjbNQzntbDei*324JUo*3ozJ7hR*h1KNlxc6kPaBeKCBrdKIxD*edhi4qH/check_name.ws?displayname=?").find());
    }
}