2012-03-29 4 views
0

나는 중간에있는 URL의 일부를 추출하고 싶습니다. 에있는 정규식을 사용하여 이것을 시도했습니다. 대부분 문제는 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해야합니다. 하지만 내 코드 didnt 한이 ... 운동

답변

3

시도 :

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)); 
    } 

결과는 다음과 같습니다

for (int i = 0; i <= n; ++i) { 
    String str = matcher.group (i).replaceAll("\\+", " "); 
    System.out.println (str); 
} 
: 인쇄하기 전에 모두 흑자를 교체

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 

편집

+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()); 


    } 

이 작업을 수행해야합니다.

관련 문제