2016-11-24 13 views
1

Я работаю над программой Java, которая берет вопрос у пользователя, отправляет его в Alphram API Wolfram, а затем очищает результат и печатает его.Извлечение требуемой подстроки из результата, полученного из Wolfram Alpha с Java

Если пользователь задает вопрос «Кто является Президентом США?» результат заключается в следующем

Response: <section><title>Input interpretation</title> <sectioncontents>United States | President</sectioncontents></section><section><title>Result</title><sectioncontents>Barack Obama (from 20/01/2009 to present)</sectioncontents></section><section><title>Basic information</title><sectioncontents>official position | President (44th)..........etc 

Я хотел бы извлечь «Барак Обама (от 20/01/2009 до настоящего времени)»

Я был в состоянии урезать до Barack используя следующий код:

String clean =response.substring(response.indexOf("Result") + 31 , response.length()); 
    System.out.println("Response: " + clean); 

Как бы отрезать остальную часть результата?

ответ

0

Ну, в случае, если это поможет, я пришел с этим регулярным выражением:

Result.+?>([^<]+?)< 

После обнаружения «Результат» он захватывает первый экземпляр> и < по крайней мере один символ между ними.

UPDATE Ниже приведен пример кода, который может быть полезным:

String response = "Response: <section><title>..." 
Pattern pattern = Pattern.compile("Result.+?>([^<]+?)<"); 
Matcher match = pattern.matcher(response); 
String clean = ""; 
if (match.find()) 
    clean = match.group(1); 
System.out.println(clean); 
+0

Привет спасибо за ваш ответ, но как бы вы на самом деле применить это регулярное выражение для моего кода? Я изо всех сил пытаюсь понять логику. – JBone

+0

@JEarls добавил пример кода, который может помочь. Кроме того, я рекомендовал бы прочитать – shrug

+0

... извините ... прочитав методы классов шаблонов и сопряжений по адресу: https://docs.oracle.com/javase/tutorial/essential/regex/ – shrug

0

Ответ по существу XML.

Как обсуждалось бесконечно во многих программирующих форумах, регулярные выражения не подходят для синтаксического анализа XML - вы должны использовать синтаксический анализатор XML.