2012-03-29 1 views
0

Я хочу извлечь часть url, которая находится в середине ее, используя регулярное выражение в java Это то, что я пробовал, в основном проблема обнаружения java+regex заключается в том, что его в середина последней части URL и я понятия не имею, как проигнорировать символы после этого, мое регулярное выражение просто игнорируя перед ним:извлечение определенной части URL-адреса с использованием регулярного выражения

String regex = "https://www\\.google\\.com/(search)?q=([^/]+)/"; 
String url = "https://www.google.com/search?q=regex+java&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a"; 
Pattern pattern = Pattern.compile (regex); 
Matcher matcher = pattern.matcher (url); 

if (matcher.matches()) 
{ 
    int n = matcher.groupCount(); 
    for (int i = 0; i <= n; ++i) 
     System.out.println (matcher.group (i)); 
} 
    } 

результат должен быть regex+java или даже regex java. но мой код не работал из ...

ответ

3

Try:

String regex = "https://www\\.google\\.com/search\\?q=([^&]+).*"; 
    String url = "https://www.google.com/search?q=regex+java&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a"; 
    Pattern pattern = Pattern.compile (regex); 
    Matcher matcher = pattern.matcher (url); 

    if (matcher.matches()) 
    { 
     int n = matcher.groupCount(); 
     for (int i = 0; i <= n; ++i) 
      System.out.println (matcher.group (i)); 
    } 

Результат:

https://www.google.com/search?q=regex+java&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a 
regex+java 

EDIT

Замена всех плюсы перед печатью:

for (int i = 0; i <= n; ++i) { 
    String str = matcher.group (i).replaceAll("\\+", " "); 
    System.out.println (str); 
} 
+0

Да, его правильно и спасибо – lonesome

+0

, и, случайно, есть все равно, чтобы заменить + на пустое пространство одновременно? – lonesome

+0

Вам нужно будет сделать 'System.out.println (matcher.group (i) .replace ('+', ''));' – aioobe

0
String regex = "https://www\\.google\\.com/?(search)\\?q=([^&]+)?"; 
    String url = "https://www.google.com/search?q=regex+java&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a"; 

    Pattern pattern = Pattern.compile(regex); 
    Matcher matcher = pattern.matcher(url); 

    while (matcher.find()) { 

     System.out.println(matcher.group()); 


    } 

Это должно делать вашу работу.

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

  • Нет связанных вопросов^_^