Извлечение URL из текстового документа с помощью Java + Регулярные выражения

Я предложил бы LEGO Mindstorm, он обеспечивает интуитивный интерфейс перетаскивания для программирования и потому что он идет с аппаратными средствами, которые он предоставляет чему-то материальному ребенку для схватывания. Кроме того, потому что это - "LEGO", они могли бы думать о нем как о большем количестве игры тогда осуществление программирования.

12
задан rburton 26 November 2009 в 22:50
поделиться

3 ответа

Если вы хотите убедиться, что вы действительно соответствуете URL-адресу, а не только слову, начинающемуся с «www». вы можете использовать выражение, упомянутое ранее ДВК. Я немного изменил его и написал небольшой фрагмент кода, который станет для вас отправной точкой:

import java.util.*;
import java.util.regex.*;

class FindUrls
{
    public static List<String> extractUrls(String input) {
        List<String> result = new ArrayList<String>();

        Pattern pattern = Pattern.compile(
            "\\b(((ht|f)tp(s?)\\:\\/\\/|~\\/|\\/)|www.)" + 
            "(\\w+:\\w+@)?(([-\\w]+\\.)+(com|org|net|gov" + 
            "|mil|biz|info|mobi|name|aero|jobs|museum" + 
            "|travel|[a-z]{2}))(:[\\d]{1,5})?" + 
            "(((\\/([-\\w~!$+|.,=]|%[a-f\\d]{2})+)+|\\/)+|\\?|#)?" + 
            "((\\?([-\\w~!$+|.,*:]|%[a-f\\d{2}])+=?" + 
            "([-\\w~!$+|.,*:=]|%[a-f\\d]{2})*)" + 
            "(&(?:[-\\w~!$+|.,*:]|%[a-f\\d{2}])+=?" + 
            "([-\\w~!$+|.,*:=]|%[a-f\\d]{2})*)*)*" + 
            "(#([-\\w~!$+|.,*:=]|%[a-f\\d]{2})*)?\\b");

        Matcher matcher = pattern.matcher(input);
        while (matcher.find()) {
            result.add(matcher.group());
        }

        return result;
    }
}
27
ответ дан 2 December 2019 в 04:09
поделиться

Эта ссылка имеет очень хорошие URL-выражения RegEx (кстати, их на удивление сложно понять - thinh http / https; номера портов, допустимые символы, строки GET, знаки решетки для якорных ссылок и т. д.)

http://flanders.co.nz/2009/11/08/a-good-url-regular-expression-repost/

Perl имеет библиотеки CPAN, которые содержат cannedRegExes , в том числе для URL-адресов. Не уверен насчет Java: (

3
ответ дан 2 December 2019 в 04:09
поделиться

Это проверяет определенную строку, если это URL

Pattern p = Pattern.compile("http://.*|www\\..*");
Matcher m = p.matcher("http://..."); // put here the line you want to check
if(m.matches()){
    so something
}
1
ответ дан 2 December 2019 в 04:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: