Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с регулярными выражениями. 
:(
    Опции темы
Гость_unkis
Дата 27.1.2005, 20:51 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Ребята уменя возникла такя проблема. я скачиваю файл с интеренета и сохраняю его в StringBuffer.
потом мне нужно найти определённую информацию и вырезать ее, для этого я используюю Pattern и указываю ему от какого регулярного выражения и до какого регулярного вырожения он должен искать в StringBuffer.
И вот здесь возникает проблемма: он ищет всё что мне надо но останоавливается и нечего не делает дальше.
Я заметил одну закономерность, что года моё конечное регулярное вырожения (до какого) стоит на другой строке от начального он всега останавливается.

От чего это может быть или может использовать для этго какие-нибудь методы?

Зарания благодарен.
  Вверх
Domestic Cat
Дата 27.1.2005, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



А где код?


--------------------

PM   Вверх
Guest
Дата 27.1.2005, 22:31 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Код

package gui2_0;

import java.util.regex.*;
import java.net.*;
import java.io.*;

public class Internet_search {
 static int i;
 static String NextPage, ID;
 static int PageCounter=1;
 static int Hilfswariable=0;// rechne length von Stringbuffer
 static String _MarkeID, _ModelID, _pVonID, _pBisID, _yearsVon, _yearsBis, _TageID, _KmID=null,Url;
 static String UrlLink = "link.htm";
 static String UrlIO = "save.txt";
 static StringBuffer s2 = new StringBuffer();
 static StringBuffer basa= new StringBuffer();
 static StringBuffer result = new StringBuffer();

  public void Internet_search(String _MarkeID, String _ModelID, String _pVonID,
                             String _pBisID, String _yearsVon,
                             String _yearsBis,
                             String _TageID, String _KmID) throws Exception {
   /*this.Url = "http://www.autoscout24.de/home/index/list.asp?&page="+PageCounter+"&make=" +
       _MarkeID +
       "&model=" + _ModelID + "&yearfrom=" + _yearsVon + "&yearto=" +
       _yearsBis + "&eurofrom=" + _pVonID +
       "&euroto=" + _pBisID + "&mileagefrom=0&mileageto=0&fuel=0&body=0&bodycol=0&cartype=0&hpfrom=0&hpto=0&gear=0&age=" +
       _TageID
       + "&accident=0&sort=price&country=D&radius=" + _KmID +
       "&zip=&carsperpage=50&action=Suchen";*/
   this.i=0;
   this._MarkeID=_MarkeID; this._ModelID=_ModelID; this._pVonID=_pVonID;
   this._pBisID=_pBisID; this._yearsVon=_yearsVon; this._yearsBis=_yearsBis;
   this._TageID=_TageID; this._KmID=_KmID;

   //****************************Nachinaem chitat w buferfer********************//
   String s=null;
   System.out.println("nachinaem chitat basa");
   FileReader raf23 = new FileReader("basa.txt");
   BufferedReader br = new BufferedReader(raf23);
   int i = 0;
   while ( (s = br.readLine()) != null) {
     basa.append(s);
   }
   raf23.close();
   System.out.println("zakonchili chitat basa");
//**************************** end ********************//

 }

 static public void HttpSave(String _Url, String _NextPage  ) throws MalformedURLException, IOException {
   if (_NextPage==null){
      Url = "http://www.autoscout24.de/home/index/list.asp?" + _Url +
         "make=" +
         _MarkeID +
         "&model=" + _ModelID + "&yearfrom=" + _yearsVon + "&yearto=" +
         _yearsBis + "&eurofrom=" + _pVonID +
         "&euroto=" + _pBisID + "&mileagefrom=0&mileageto=0&fuel=0&body=0&bodycol=0&cartype=0&hpfrom=0&hpto=0&gear=0&age=" +
         _TageID
         + "&accident=0&sort=price&country=D&radius=" + _KmID +
         "&zip=&carsperpage=50&action=Suchen";
   }else{
     Url ="http://www.autoscout24.de/home/index/list.asp?"+ _NextPage+"carsperpage=50";
   }

System.out.println("Nachinaem zakachiwat stranicu");

   int c;
   URL hp = new URL(Url);
   System.out.println("Url= "+Url);
   URLConnection hpCon = hp.openConnection();

   int len = hpCon.getContentLength();
   //System.out.println("len=" + len);
   if (len > 0) {
     //int i = len;
     InputStream input = hpCon.getInputStream();
     while (((c = input.read()) != -1) && (--len > 0)) {
       s2.append((char)c);
     }
     input.close();
   }
   else {
     System.out.println("Net sodergimogo ili no connection");
   }
   FileWriter raf359 = new FileWriter("zwishen.txt");
  // BufferedReader br1 = new BufferedReader(raf1);
  raf359.write(s2.toString());
  raf359.close();



System.out.println("Zakonchili zakachiwat stranicu");
  pars();
 }

 public static void pars() throws IOException {

   String Car_= "\",\"\",\"€ ";
   Pattern pCar_ = Pattern.compile(Car_);
   Matcher mCar_ = pCar_.matcher(s2);



   String IDVon="searchjobs.asp";
   String IDBis="&action";
   Pattern pIDVon = Pattern.compile(IDVon);
   Pattern pIDBis = Pattern.compile(IDBis);
   Matcher mIDVon = pIDVon.matcher(s2);
   Matcher mIDBis = pIDBis.matcher(s2);

   System.out.println("Nachinaem parsit");



   String detalisBis ="\",\"\",\"";

   String sNextVon ="chste</a>&nbsp;<a href=\"/home/index/list.asp?"; // next page von
   String sNextBis = "carsperpage"; // next page bis

   String _iVon = "&euro;&nbsp;";//Preis von
   String _iBis = "\",\""; //Preis bis


   Pattern pDetalisBis = Pattern.compile(detalisBis);

   Pattern pNextVon = Pattern.compile(sNextVon);
   Pattern pNextBis = Pattern.compile(sNextBis);
System.out.println("Nachinaem parsit--------------------------------1");
   Pattern _pVon = Pattern.compile(_iVon);
   Pattern _pBis = Pattern.compile(_iBis);


   Matcher mDetalisBis = pDetalisBis.matcher(s2);

   Matcher mNextVon = pNextVon.matcher(s2);
   Matcher mNextBis = pNextBis.matcher(s2);

   Matcher _mVon = _pVon.matcher(s2);
   Matcher _mBis = _pBis.matcher(s2);
System.out.println("pered while");


while (mIDVon.find()&&mIDBis.find(mIDVon.end()))
{
  ID=s2.substring(mIDVon.end()+4, mIDBis.start());
}

   while (mCar_.find() && _mVon.find() && _mBis.find(_mVon.start()) &&
          mDetalisBis.find(_mBis.end()))
   {
         System.out.println("Wnutri wihle zikla");
       i++;
       if (Vergleich(s2.substring(_mBis.end(), mDetalisBis.start()))==false){
                   System.out.println("Wnutri if zikla");
         result.append("<A href=http://www.autoscout24.de/home/index/detail.asp?ts=" +
                       ID+"&id="+
                       s2.substring(mCar_.start()-11,mCar_.start())
                       +"\t<HTML><B><FONT SIZE=5 COLOR=RED>" +
                       s2.substring(_mVon.end(), _mBis.start()) +
                       "</FONT></B></HTML>" + "<br>" +
                       s2.substring(_mBis.end(), mDetalisBis.start()) +
                       "<br><br>");
       }

    // System.out.println("rabotaet wnutri zikla\t" + i);
   }

   int counter=0;
   //System.out.println("Sushestwuet li sleduushaya straniza = " + mNextVon.find());
   while((mNextVon.find()) && (mNextBis.find(mNextVon.start())) && (counter==0)){
     System.out.println("wnutri wil111111111111111111111111111111111111111111111111");
     NextPage = s2.substring(mNextVon.end(),mNextBis.start());
     counter++;
     System.out.println("Sleduushaya straniza suschestvuet, NextPage= "+NextPage);
   }
  // System.out.println("Srazu posle sushestwuushej starnizi, Counter = "+counter);

  // System.out.println("s2 length_do stiraniya= "+ s2.length());
   s2.setLength(0); // ocheshau StringBuffer 's2'
  // System.out.println("s2 length_posle stiraniya= "+ s2.length());


   PageCounter+=counter;
   System.out.println("PageCounter= "+PageCounter);
   if (counter!=0)  {
     counter=0;
     HttpSave(null,NextPage);
   }
 }

static boolean Vergleich(String a){
  System.out.println("Detalis=  "+a);
       Pattern pVon = Pattern.compile(a);
     Matcher mVon = pVon.matcher(basa);
     if (mVon.find()){
       System.out.println("Eta stroka sushestwuet"+a);
       return true;
     } else {
       System.out.println("Poyawilos obnowleniya");
       return false;
       //result.append(a);
     }

   }

 static public void LinkMake() throws IOException {
   FileWriter raf1 = new FileWriter("link.htm");
  // BufferedReader br1 = new BufferedReader(raf1);
  raf1.write(result.toString());
  raf1.close();


  basa.append(result);
  if (result.length()>0){
    FileWriter raf2 = new FileWriter("basa.txt");
    raf2.write(basa.toString());
    raf2.close();
  }

   System.out.println("Result length= "+result.length());
   if (result.length()>0){System.out.println("POYAWILOS OBNOWLENIE!!!!!!!!!!!!!!!!!!!!!!!");}
   else System.out.println("Obnowlenij net");
   result.setLength(0);

 }
}



  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0475 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.