Pessoal ola,
Eu estou com um texto html e preciso pegar dele os links que estão nestes 3 atributos mencionados para isso eu tentei isso:
[code]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()));
}[/code]
Até aí tudo bem funciona com o find só que eu preciso quee pegue o link limpo algo como
img/imagem.gif
e não:
href="img/imagem.gif"
src="img/imagem.gif"
url(img/imagem.gif)
logo eu usaria uma variavel e daria um replace, é o que me vem a mente assim ficaria:
[code] 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);
}[/code]
Acontece que com o replace não dá certo! ele não pega a url perfeitamente, alguem pode me ajudar?