Как использовать Regex для разбора ссылок - PullRequest
0 голосов
/ 02 апреля 2012

Я работаю над проектом с гиперссылками.Мне нужно проанализировать все ссылки из строки в Java, но только http://rapidshare.com ссылки.

Все проанализированные ссылки должны быть заполнены в массиве.Мой код выглядит так:

Matcher mat = Pattern.compile("(\"(.*?)\"|([^,]+)),?").matcher(html);

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

обновление на quellcode

Matcher mat = Pattern.compile("/href=\\\"(http://(www\\.)?rapidshare.com/.+)\\\"/").matcher(html);

while (mat.find()) {                        
    result.add(mat.group(2) == null ? mat.group(3) : mat.group(2));                 
}

1 Ответ

0 голосов
/ 05 апреля 2012

Я использую это регулярное выражение javascript в моем дополнении к Firefox в производстве:

(?:h..ps?://)?(?:www\.)?rapidshare\.com/files/([0-9]+)/([^\s<"/]{1,500})/?

Популярное программное обеспечение с открытым исходным кодом JDownloader Java использует это:

//    Copyright (C) 2008  JD-Team support@jdownloader.org
"http://[\\w\\.]*?rapidshare\\.com/files/\\d+/?(.*?)($|\\?)"

Эти два регулярных выражения предназначены специально для ссылок на файлы.Им требуется имя файла, поскольку API требует имя файла.

...