Boost logo

Boost Users :

From: hackervalley (hackervalley_at_[hidden])
Date: 2004-08-01 18:35:39


Hello,

I try to use boost regex . I don't have a lot of experience of using
boost regex . Boost regex examples aren't so explicit for me. So I need
some help to parse this example file.

Point(1) = {0,0,0,0.1};
Point(2) = {1,0,0,0.1};
Point(3) = {0,1,0,0.1};
Point(4) = {1,1,0,0.1};
Line(1) = {1,2};
Line(2) = {2,4};
Line(3) = {4,3};
Line(4) = {3,1};
Line Loop(5) = {2,3,4,1};
Plane Surface(6) = {5};

I can't read each informations to use it after.
I can't match for use IdentificationNumber of Point(IdentificationNumber).
Actually my code look so :

   /*
g++ -Wall -O2 -o ifstream ifstream.cc
*/

#include <iostream>
#include <fstream>
#include <string>

/* boost regex header */
#include <boost/regex.hpp>

using namespace std;
using namespace boost;

int
main (int argc, char argv[])
{
        char buffer[256];
        string filename;
        string inputstring;

        cout << "Input filename ";
        cin >> filename;
        ifstream readfile (filename.c_str (), ios::in);

        if (!readfile.is_open ())
        {
                cout << "Error opening file" << endl;
                return 0;
        }

        regex exPoint ("Point");
        regex exLine ("Line");
        regex IdentificationNumber ("[:digit:]");
        
        while (!readfile.eof ())
        {
                readfile.getline (buffer, 200);
                inputstring = buffer;

                if (regex_search (inputstring, exPoint))
                {
                        cout << "Point" << endl;
                        smatch result;
                        if (regex_search
                            (inputstring, result, IdentificationNumber))
                        {
                                cout << "Identification Number " << result << endl;
                                }
                        else
                                cout << "Error regex_match" << endl;
                }
                if (regex_search (inputstring, exLine))
                {
                        cout << "Line" << endl;
                }
                cout << buffer << endl;
        }

        readfile.close ();

        return (0);
}

Thank you for help. Best regards

hackervalley
http://hackervalley.free.fr


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net