powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка в шаблоне....
8 сообщений из 8, страница 1 из 1
Ошибка в шаблоне....
    #34554179
iliacompany
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте! Прошу Вашей помощи...
Пытаюсь распарсить страничку...написал шаблон (вроде как должен работать - дык нет)....мэтчер ничего не возвращает...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
 public   class  ParsingClass {  
     public  Collection<Release> Parsing(String lPageForParse) {  
        Collection<Release> result =  new  ArrayList<Release>();
        
        Pattern ReleasePattern = Pattern.compile
        ("<SPAN class=prod>([0-9]{2}.[0-9]{2}.[0-9]{4})</SPAN><SPAN class=prod>(.*).*</SPAN><SPAN class=prod>([0-9]{1}.[0-9]{2}.[0-9]{3})</SPAN>.*href=.*(http://mysite.ru/download/.*)>.*",Pattern.DOTALL);

        //осуществляем поиск в входной строке по шаблону
        Matcher ReleaseMatcher = ReleasePattern.matcher(lPageForParse);       
         while  (ReleaseMatcher.find()){
            Release release =  new  Release();
            
            release.setnameRelease(ReleaseMatcher.group( 2 ));  //OutputNameRelease
            release.setnumberRelease(Integer.parseInt(ReleaseMatcher.group( 3 ))); //OutputNumberRelease
            release.sethardLink(ReleaseMatcher.group( 4 )); //OutputLink
            release.setdescription(ReleaseMatcher.group( 1 )); //OutputData
            
            result.add(release);
        }
         return  result;
        }
    }



При этом распарсиваемый код выглядит приближенно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<TD  class =content><SPAN  class =prod> 18 . 12 . 2006 </SPAN> </TD>
    <TD  class =content><SPAN  class =prod>Приложение1</SPAN> </TD>
    <TD  class =content><SPAN  class =prod> 7 . 70 . 027 </SPAN></TD>
    <TD  class =content><!--  133  -->
      <TABLE 
      style="BORDER-RIGHT: #d3d3d3 1px solid; BORDER-TOP: #d3d3d3 1px solid; BORDER-LEFT: #d3d3d3 1px solid" 
      cellSpacing= 0  cellPadding= 2  width="100%" bgColor=#ffffff border= 0 ><A 
        name=breakinsp133n0></A>
        <TBODY>
        <TR vAlign=top>
          <TD style="BORDER-BOTTOM: #d3d3d3 1px solid"><B>tradm271</B></TD>
          <TD style="BORDER-BOTTOM: #d3d3d3 1px solid"> </TD>
          <TD style="BORDER-BOTTOM: #d3d3d3 1px solid"><!-- 2126 --><NOBR><A 
            href="http://mysite.ru/download/parts/tradm271_parts/tradm271.2048k.rar">Скачать 
            одним архивом</A>

Подскажите, где мог накорячить???


with best regards
Ilya.
...
Рейтинг: 0 / 0
Ошибка в шаблоне....
    #34554448
iliacompany
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребят, у кого-нибудь есть хоть какие-то мысли...а то я реально засел на этой проблеме....помогите

with best regards
Ilya.
...
Рейтинг: 0 / 0
Ошибка в шаблоне....
    #34554465
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя regexp не правильный (т.е. как написано так и работает), нету в твоем примере совпадений
...
Рейтинг: 0 / 0
Ошибка в шаблоне....
    #34554475
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
<TD class=content><SPAN class=prod>18.12.2006</SPAN> </TD>
<TD class=content><SPAN class=prod>Приложение1</SPAN>


вот где например в регекспе описан выделенный жирным элемент?
...
Рейтинг: 0 / 0
Ошибка в шаблоне....
    #34554854
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используйте специальный библиотеки для разбора HTML-страницы, если не получается с помощью regexp. Например, HTMLParser.
...
Рейтинг: 0 / 0
Ошибка в шаблоне....
    #34570049
iliacompany
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребят, прошу помощи...Написал такое регулярное выражение, но все равно не помогает......
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Pattern ReleasePattern = Pattern.compile
        (".*<TR>"+
    "<TD class .*>()</TD></TR><.*>"+
  "<TR onmouseover=\"this.className='over'\" onmouseout=\"this.className='out'\""+ 
  "vAlign=top>"+
    "<TD class=content><SPAN class=prod>()</SPAN> </TD>"+
    "<TD class=content><SPAN class=prod>()</TD>"+
    "<TD class=content><SPAN class=prod>()</SPAN></TD>"+
    "<TD class=content><.*><NOBR><A  href=()>.*</A>/*</TD></TR><.*>.*",Pattern.DOTALL);


пожайлуста, подскажите...совсем уже нет мыслей(((


with best regards
Ilya.
...
Рейтинг: 0 / 0
Ошибка в шаблоне....
    #34570053
iliacompany
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Распарсиваемая страничка следующая:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<TR onmouseover="this.className='over'" onmouseout="this.className='out'" 
  vAlign=top>
    <TD  class =content><SPAN  class =prod>Нужно это выгребсти</SPAN> </TD>
    <TD  class =content><SPAN  class =prod>нужно это выгребсти</SPAN></TD>
    <TD  class =content><SPAN  class =prod>Это выгребсти</SPAN></TD>
    <TD  class =content><!--  969  --><NOBR><A 
      href="это выгребсти">finpl_124.txt</A> ( 7  kB)</NOBR><BR></TD></TR><!--  101  -->


Буду признателен за помощь...уже совсем растерялся(

with best regards
Ilya.
...
Рейтинг: 0 / 0
Ошибка в шаблоне....
    #34570186
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как пишут в умных книжках при построении регулярных выражений нужно добиться двух целей:
1. чтобы совпадение было там где надо
2. чтобы совпадений не было, там где не надо

добиться второго иногда сложнее. Вот regexp который добивается первой цели, но вам его еще придеться доделывать чтобы добиться второй:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
 import  java.util.regex.Pattern;
 import  java.util.regex.Matcher;

 public   class  TestRegexp {

     public   static   final  String TEXT = 
            "<TR onmouseover=\"this.className='over'\" onmouseout=\"this.className='out'\" \n" +
            "  vAlign=top>\n" +
            "    <TD class=content><SPAN class=prod>content1</SPAN></TD>\n" +
            "    <TD class=content><SPAN class=prod>content2</SPAN></TD>\n" +
            "    <TD class=content><SPAN class=prod>content3</SPAN></TD>\n" +
            "    <TD class=content><!-- 969 --><NOBR><A \n" +
            "      href=\"content4\">finpl_124.txt</A> (7 kB)</NOBR><BR></TD></TR><!-- 101 -->\n";


     public   static   void  main(String[] args) {

        Pattern pattern = Pattern.compile(
                ".*<SPAN class=prod>(.*)</SPAN>" +
                ".*<SPAN class=prod>(.*)</SPAN>" +
                ".*<SPAN class=prod>(.*)</SPAN>" +
                ".*\\bhref=\"(.*)\">.*", Pattern.DOTALL);

        Matcher matcher = pattern.matcher(TEXT);

         if  (matcher.matches()) {
            System.out.println(matcher.group( 1 ));
            System.out.println(matcher.group( 2 ));
            System.out.println(matcher.group( 3 ));
            System.out.println(matcher.group( 4 ));
        }
    }
}

PS: кажется что решать эту задачу через регулярные вырвжения не совсем корректно.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка в шаблоне....
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]