Помогите с регулярным выражением для анализа и получения содержимого тега <p>в html - PullRequest
3 голосов
/ 14 апреля 2011

У меня есть сайт, с которого я пытаюсь получить данные, и содержимое выглядит следующим образом:

 <p uri="/someRandomURL.p1" class="">TestData TestData TestData</p> 
 <p uri="/someRandomURL.p2" class="">TestData1 TestData1 TestData1</p>

Я использую Java для получения содержимого веб-страницы и пытаюсь выполнить его анализкак это:

        Pattern p = Pattern.compile(".*?p1' class=''>(.*?)<.*");
        Matcher m = p.matcher(data);

        //Print out regex groups to console
        System.out.println(m.group(1)) ;

Но затем выдается исключение, говорящее, что совпадений не найдено ...

Правильно ли мое регулярное выражение?Что еще может происходить?Я получаю HTML хорошо, но, очевидно, нет никакого соответствия для моего регулярного выражения ...

Спасибо

1 Ответ

0 голосов
/ 14 апреля 2011

Если текстовые элементы содержат несколько текстовых строк, совпадение не будет найдено, поскольку точка (.) не соответствует \n (по умолчанию).

Попробуйте:

 Pattern p = Pattern.compile(".*?p1' class=''>(.*?)<.*", Pattern.DOTALL);
...