Извлечение строки, содержащей подстановочный знак, из строки большего размера - PullRequest
0 голосов
/ 20 января 2012

У меня есть кусок HTML, из которого мне нужно вытащить слово.Строка realClean содержит HTML.

<div class="smallfont">
<small>

Originally Posted By: chingy51o

</small>
</div>

Мне нужно извлечь из нее chingy51o.Некоторое время у меня были проблемы с этим, поэтому я расширил свой поиск, чтобы просто вытащить любую строку, содержащую Originally Posted By:, в надежде, что, как только я смогу это выделить, я смогу извлечь более конкретные данныеиз этого, но я могу даже извлечь эту строку.

            String authorString = "Originally Posted By: .*?";
            if (realClean.contains(authorString)) {
                    Log.d("AUTHORS!", authorString + "\n");
            }

но это не возвращает никаких значений.

Ответы [ 4 ]

1 голос
/ 20 января 2012

Почему бы не попробовать что-то вроде этого:

        int start = realClean.indexOf("Originally Posted By: ") + 22;
        int end = realClean.indexOf(newline, start);
        String realAuthor = realClean.substring(start, end);

Вы можете заменить символ новой строки чем-нибудь, что отделяет автора от остальной части документа (например, пробел)

1 голос
/ 20 января 2012

Создайте Scanner объект и ищите каждую строку.

String authorString = "Originally Posted By:";
Scanner scanner = new Scanner(realClean);
try {
  while ( scanner.hasNextLine() ){
    String line = scanner.nextLine();
    if(line.contains(authorString){
       Log.d("AUTHORS!", line.split(authorString)[1] + "\n");
  }
}
0 голосов
/ 20 января 2012

Предполагая, что realClean является строкой, вы должны знать, что String.contains() принимает CharSequence в качестве аргумента, а не регулярное выражение.Если вы хотите выполнить сопоставление регулярного выражения со строкой, вам нужно использовать String.matches() или создать шаблон регулярного выражения и сопоставить строку с ним вручную.

0 голосов
/ 20 января 2012

Я бы прочитал на Java Шаблоны и, в частности, захват текста в группе .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...