tregexpr ip

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Spy2ex, 27 Jun 2010.

  1. Spy2ex

    Spy2ex Elder - Старейшина

    Joined:
    20 Sep 2008
    Messages:
    32
    Likes Received:
    15
    Reputations:
    1
    Нужно спарсить прокси с одного сайта , компонент поставил сегодня, почитал про регулярки получилось:

    Code:
    	  TRegExpr *r2 = new TRegExpr;
    	  r2->Expression = "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}:[0-9]{1,5}";
    
    	  if(r2->Exec(table))
    	  {
    	   while (r2->ExecNext())
    	   {
    		 Form1->Memo1->Lines->Add(r2->Match[0]);
    	   }
    	  }
    	 r2->Free();
    
    Вовсе не работает.

    Нашел более продвинутую регулярку для ip, с диапазоном на работает не корректно.
    Code:
    (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
    
    Подскажите, где моя ошибка ?
     
    #1 Spy2ex, 27 Jun 2010
    Last edited: 27 Jun 2010
  2. Spy2ex

    Spy2ex Elder - Старейшина

    Joined:
    20 Sep 2008
    Messages:
    32
    Likes Received:
    15
    Reputations:
    1
    Code:
    r2->Expression = "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?):[0-9]{2,5}";
    
    Нужно было еще экранировать "\". В итоге экранировать точку вышло "\\."