2016-07-28 6 views
0

Вот пример ввода:Как найти строку, то получим следующие символы до определенного символа

<div><a class="document-subtitle category" href="/store/apps/category/GAME_ADVENTURE"> <span itemprop="genre">Adventure</span> </a> </div> <div> </div> 

Строка я пытаюсь найти это:

document-subtitle category" href="/store/apps/category/ 

и я хотите извлечь символы, следующие за этой строкой, до конца атрибута href (">).

В этом случае мой вывод должен быть:

GAME_ADVENTURE 

Мой входной файл гарантированно иметь только один строку, которая соответствует именно:

document-subtitle category" href="/store/apps/category/ 

Что простой способ достижения этой цели?

+0

Есть ли конкретный язык программирования? –

+0

^Нет. Я простенький способ добиться этого. – Mido

+0

Вы пытаетесь или что-то делаете? –

ответ

0

Это работает для меня:

import java.io.IOException; 
import java.nio.file.Files; 
import java.nio.file.Paths; 

public class ExtractData { 
    public static String matcher = "document-subtitle category\" href=\"/store/apps/category/"; 

    public static void main(String[] args) throws IOException { 
    String filePath = args[0]; 
    String content = new String(Files.readAllBytes(Paths.get(filePath))); 
    int startIndex = content.indexOf(matcher); 
    int endIndex = content.indexOf("\">", startIndex); 
    String category = content.substring(startIndex + matcher.length(), endIndex); 
    System.out.println("category is " + category); 
    } 
} 
0

В данном конкретном случае, это, как я хотел бы сделать это в Java:

private static final String _control = "document-subtitle category"; 
    private static final String _href = "href"; 

    private String getCategoryFromInput(String input) { 
     if (input.contains(_control)) { 
      int hrefStart = input.indexOf(_href); 

      int openQuote = input.indexOf('"', hrefStart + 1); 

      int endQuote = input.indexOf('"', openQuote + 1); 

      String chunk = input.substring(openQuote, endQuote); 

      int finalDelimeter = chunk.lastIndexOf("/"); 

      return chunk.substring(finalDelimeter); 
     } else { 
      return ""; 
     } 

    } 

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

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