Нужна помощь с TRegExpr в Builder

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Gin, 1 Oct 2010.

  1. Gin

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

    Joined:
    11 Sep 2008
    Messages:
    133
    Likes Received:
    7
    Reputations:
    4
    Суть в следующем, нужна регулярка для этого компонента которая получала бы со страницы все емейлы. текст в формате utf-8. Смотрел и на regexlib и вместе с этим компонентом от автора есть еще тестирующая программа для регулярок брал от туда пример, в его проге для тестирования все работает, но стоит перенести его регулярку в свой проект как тут же выдает ошибку Invalid[] Range Pos.

    Вот пример.

    Code:
    String data; html->LoadFromFile("response.html");
    data=html->Text; TRegExpr* exp= new TRegExpr;
    exp->Expression="[_a-zA-Z\d\-\.]+@[_a-zA-Z\d\-]+(\.[_a-zA-Z\d\-]+)+";
    exp->Exec(data); Memo1->Lines->Add(exp->Match[0]); while(exp->ExecNext()){
    Memo1->Lines->Add(exp->Match[0]);
    }
    delete exp;
    
    Помогите что делать сам уже разобраться не могу.
     
  2. NemeZz

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

    Joined:
    20 Aug 2008
    Messages:
    102
    Likes Received:
    67
    Reputations:
    3
    ну тебе явно говорят, что у тебя проблема с размерами массива.
    1. Хотелось бы увидеть твой код, а не пример.
    2. подозреваю сразу без exec обращение к 0-му элементу.
     
  3. Gin

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

    Joined:
    11 Sep 2008
    Messages:
    133
    Likes Received:
    7
    Reputations:
    4
    это и есть весь, код в файле response.html просто закинуты мыла, при попытке выполнения регулярки выдает ошибку.
     
  4. Gin

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

    Joined:
    11 Sep 2008
    Messages:
    133
    Likes Received:
    7
    Reputations:
    4
    Человеки, но может кто-то сможет помочь с вопросм уже готов даже заплатить (нервы дороже =))))
     
  5. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    надо проверять на if Reg->Exec всегда и только потом Match
     
    #5 GhostOnline, 2 Oct 2010
    Last edited: 2 Oct 2010