Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > проблемы с парсингом \"


Автор: Anime 23.6.2009, 13:54
Имеется вот такие данные <div class=\"Text\">

Пишу так
Код

Pattern p2 = Pattern.compile("<div class=\\\"(.*?)\\\">");

String txt;
while((txt = in.readLine()) != null) {
   Matcher m1 = p2.matcher(txt);
   while(m1.find()) {
     System.out.println(m1.group(0));
  }
}


выдает пустой результат... мой паттерн соответствует данным? =)

Автор: MisterCleric 23.6.2009, 14:55
Код

  public void testMatch() {
        Pattern p2 = Pattern.compile("<div class=\"(.*?)\">");
        String txt = "dfgdfgdfgdfg<div class=\"werwer\">fghfghfgh<div class=\"123123\">fgh";
            Matcher m1 = p2.matcher(txt);
            while (m1.find()) {
                System.out.println(m1.group(0));
            }
    }

Автор: Anime 23.6.2009, 16:19
Пример работает.., а у меня нет =_=
так что то не работает вот кусок побольше
Код

BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));

                    Pattern p2 = Pattern.compile("<div class=\"(.*?)\" id=\"(.*?)\">");

                    String txt;
                    while((txt = in.readLine()) != null) {
                        //System.out.println(txt);
                        Matcher m1 = p2.matcher(txt);
                        while(m1.find()) {
                            System.out.println(m1.group(0));
                        }
                    }


Вот входные данные
Код

{"rows":"\n<div class=\"text1\" id=\"text11\">\n <table><tbody>\n <tr><td style=\"width: 18px; vertical-align:top\">\n 

Это в JSON вроде

Автор: anbal 24.6.2009, 17:05
Привет Anime.
Просто ты ставил недостаточно backslash'ей  smile.
 
Попробуй так
Код

Pattern p = Pattern.compile("<div class=\\\\\".*?\\\\\" id=\\\\\".*?\\\\\">");

Дело в том что для java regexp backslash представляется в виде \\, а для того чтобы представить это в 
String, в коде нужно записать \\\\, по-этому такая путаница возникает.

У меня на предоставленных тобой входных данных сработало.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)