2015-06-05 3 views
0

Я использую регулярное выражение для извлечения золотых котировок с веб-страницы. Я разбираю его в строке, а затем с помощью регулярного выражения извлекает кавычки.Использование regex в Java для извлечения подстроки

import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

public class HelloWorld{ 

public static void main(String []args){ 
    String str = "----------------------------------------------------------------------" 
       + "Metals   Bid  Ask   Change  Low  High " 
       + "----------------------------------------------------------------------" 
       + "Gold   1176.40  1177.40  -8.60 -0.73% 1171.90 1183.90"; 

    Pattern pattern = Pattern.compile("Gold(\\s{9})(\\d{4}).(\\d{2})"); 
    Matcher matcher = pattern.matcher(str); 

    if (matcher.find()) 
    { 
     System.out.println(matcher.group()); 
    } 
    else { 
     System.out.println("No string found"); 
    } 

    } 
} 

Этот код находит «Gold 1176.40» строку, которую я хочу, но я не могу сохранить его в другую строку, как и в

String temp = matcher.group(); 

Как я могу это сделать?

+0

Что вы подразумеваете под «неспособностью сохранить его как другую строку»? – Gosu

ответ

1

Объявите временную переменную перед условием if, а затем добавьте соответствующую строку к этой переменной temp.

String temp = ""; 
Pattern pattern = Pattern.compile("Gold(\\s{9})(\\d{4})\\.(\\d{2})"); 
Matcher matcher = pattern.matcher(str); 

if (matcher.find()) 
{ 
    temp = temp + matcher.group(); 
} 
else { 
    System.out.println("No string found"); 
} 
+0

именно то, что я хотел, спасибо –

0

Если вам интересно сделать это в одной строке.

String str = "----------------------------------------------------------------------" 
       + "Metals   Bid  Ask   Change  Low  High " 
       + "----------------------------------------------------------------------" 
       + "Gold   1176.40  1177.40  -8.60 -0.73% 1171.90 1183.90"; 
String s = str.substring(str.indexOf("Gold"))).replaceAll("(Gold\\s{9}\\d{4}.\\d{2}).*", "$1"); 
Смежные вопросы