2016-07-04 3 views
-1

Я использую пакет JSOUP для получения определенного TITLE-поиска, такого как название facebook. Вот мой код, который дает результат с TITLE. Из TITLE я хочу выбрать URL-адрес facebook.Как разбить слово с помощью java regex?

ПРОГРАММА:

package googlesearch; 

import java.io.IOException; 
import java.net.URLDecoder; 
import java.net.URLEncoder; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

import org.jsoup.Jsoup; 
import org.jsoup.nodes.Element; 
import org.jsoup.select.Elements; 

public class SearchRegexDiv { 
    private static String REGEX = ".?[facebook]"; 
    public static void main(String[] args) throws IOException { 

    Pattern p = Pattern.compile(REGEX); 
    String google = "http://www.google.com/search?q="; 
    //String search = "stackoverflow"; 
    String search = "hortonworks"; 
    String charset = "UTF-8"; 
    String userAgent = "ExampleBot 1.0 (+http://example.com/bot)"; // Change this to your company's name and bot homepage! 

    Elements links = Jsoup.connect(google + URLEncoder.encode(search, charset)).userAgent(userAgent).get().select(".g>.r>a"); 

    for (Element link: links) { 
     String title = link.text(); 
     String url = link.absUrl("href"); // Google returns URLs in format "http://www.google.com/url?q=<url>&sa=U&ei=<someKey>". 
     url = URLDecoder.decode(url.substring(url.indexOf('=') + 1, url.indexOf('&')), "UTF-8"); 

     if (!url.startsWith("http")) { 
     continue; // Ads/news/etc. 
     } 

     //.?facebook 
     if (title.matches(REGEX)) { 
     System.out.println("Done"); 
     title.substring(title.lastIndexOf(" ") + 1); //split the String 
     //(example.substring(example.lastIndexOf(" ") + 1)); 
     } 
     System.out.println("Title: " + title); 

     System.out.println("URL: " + url); 
    } 
    } 
} 

ВЫВОД:

Title: Hortonworks - Facebook logo URL: https://www.facebook.com/hortonworks/

С выхода я получаю список URL's и TITLE's в указанном выше формате.

Я пытаюсь соответствовать Заголовок, содержащий слово Facebook и я хочу, чтобы разделить его на две строки, как

String socila_media = facebook; 

String org = hortonworks; 
+2

JAVA не JavaScript, удалена тег – mplungjan

+1

Может быть, я что-то упустил, но как это связано с perl? Удален тег perl. –

+0

Возможно, perl regex gurus были бы полезны :) – mplungjan

ответ

0

использовать этот код, чтобы разделить вас String с использованием нескольких Character

Вот Demo To Split character using multiple param

String word = "https://www.facebook.com/hortonworks/"; 
     String [] array = word.split("[/.]"); 
     for (String each1 : array) 
     System.out.println(each1); 

Выход

https: //each splitted word in different line. 
www 
facebook 
com 
hortonworks 
+0

Спасибо @ Kashyap, это помогло мне –

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