2013-11-16 3 views
0

У меня есть этот код html. Я хочу заменить заполнители ссылок на содержимое, указанное в трех отдельных атрибутах. Это то, что я пытался до сих пор:Как получить url src и href html

String texto2 = "url(\"primeiro url\")\n" + 
    "url('2 url')\n" + 
    "href=\"1 href\"\n" + 
    "src=\"1 src\"\n" + 
    "src='2 src'\n" + 
    "url('3 url')\n" + 
    "\n" + 
    ".camera_target_content .camera_link {\n" + 
    " background: url(../images/blank.gif);\n" + 
    " display: block;\n" + 
    " height: 100%;\n" + 
    " text-decoration: none;\n" + 
    "}"; 

    String exp = "(?:href|src)=[\"'](.+)[\"']+|(?:url)\\([\"']*(.*)[\"']*\\)"; 
    // expressão para pegar os links do src e do href 
    Pattern pattern = Pattern.compile(exp); 

    // preparando expressao 
    Matcher matcher = pattern.matcher(texto2); 


    // pegando urls e guardando na lista 
    while(matcher.find()) { 


    System.out.println(texto2.substring(matcher.start(), matcher.end())); 
    } 

До сих пор, так хорошо - Он работает с находкой только что мне нужно, чтобы получить чистую ссылку, что-то вроде этого:

img/image.gif 

и не :

 href = "img/image.gif" 

SRC = "IMG/image.gif" URL (IMG/image.gif)

I ва nt заменить один заполнитель с использованием одной переменной; это то, что я пробовал до сих пор:

 String texto2 = "url(\"primeiro url\")\n" + 
    "url('2 url')\n" + 
    "href=\"1 href\"\n" + 
    "src=\"1 src\"\n" + 
    "src='2 src'\n" + 
    "url('3 url')\n" + 
    "\n" + 
    ".camera_target_content .camera_link {\n" + 
    " background: url(../images/blank.gif);\n" + 
    " display: block;\n" + 
    " height: 100%;\n" + 
    " text-decoration: none;\n" + 
    "}"; 

    String exp = "(?:href|src)=[\"'](.+)[\"']+|(?:url)\\([\"']*(.*)[\"']*\\)"; 
    // expressão para pegar os links do src e do href 
    Pattern pattern = Pattern.compile(exp); 

    // preparando expressao 
    Matcher matcher = pattern.matcher(texto2); 


    // pegando urls e guardando na lista 
    while(matcher.find()) { 


    String s = matcher.group(2); 
    System.out.println(s); 


    } 

Оказалось, что эта версия не работает. Он отлично захватывает URL-адрес; может кто-нибудь помочь мне определить проблему?

+0

* «Я текст html и вам нужно получить его ссылки ..» * Используйте парсер HTML. В противном случае обратитесь к [this] (http://stackoverflow.com/a/1732454/418556) .. –

+0

где я нахожу этот html-парсер? – deFreitas

+0

Поисковая система 'java html parse' .. –

ответ

0

jsoup. Разберите HTML-строку в DOM, и затем вы можете использовать селектор CSS, чтобы вытащить значения, как в jQuery в JavaScript. Обратите внимание, что это будет работать, только если вы на самом деле , работающий с HTML; строка в верхней части вашего примера не является HTML.

+0

Привет друг! спасибо, что много помогли – deFreitas

Смежные вопросы