Named Group support for regular expressions in TR1?

D

DomoChan

When I attempt to name a group in a regular expression under TR1, the
library throws a non descriptive error "regular expression error".
The numbered reference group works, as in /1 to reference the first
group. However, any attempt to use (?<myGroup>expression) fails?

Does anyone have any insight into this?

Thanks!
-Velik
 
M

mlimber

When I attempt to name a group in a regular expression under TR1, the
library throws a non descriptive error "regular expression error".
The numbered reference group works, as in /1 to reference the first
group.  However, any attempt to use (?<myGroup>expression) fails?

Does anyone have any insight into this?

How about minimal but complete code (and input) to reproduce the
problem? Compare this FAQ on posting non-working code:

http://www.parashift.com/c++-faq-lite/how-to-post.html#faq-5.8

Cheers! --M
 
D

DomoChan

How about minimal but complete code (and input) to reproduce the
problem? Compare this FAQ on posting non-working code:

http://www.parashift.com/c++-faq-lite/how-to-post.html#faq-5.8

Cheers! --M

Certainly...

// Compiler Information
Version 9.0.21022.8 RTM
Microsoft .NET Framework
Version 3.5
Installed Edition: Enterprise
Microsoft Visual C++ 2008 91899-153-0000007-60443
// Operating System
Windows Vista

#include <string>
using std::string;

// This example should be compiled with visual studio 2008, with the
TR1 update
// TR1 Update Link :
http://www.microsoft.com/downloads/...6B-8DAB-445F-A7B4-448B326C48E7&displaylang=en
#include <regex>
using namespace std::tr1;

int main(int argc, char* argv[])
{
try
{
// this works
regex pattern1( "<[\\?](.+)[\\?]>?" );
// this fails
regex pattern2( "<[\\?](?'groupName'.+)[\\?]>?" );
// so does this
regex pattern3( "<[\\?](?<groupName>.+)[\\?]>?" );
}
catch (std::exception& exc)
{
// shows up as "regular expression error", "unknown (?'groupName')
would have been nice :/ oh well
string dbg = exc.what();
}

return 0;
}
 
M

mlimber

On Aug 10, 5:21 pm, (e-mail address removed) wrote:
How about minimal but complete code (and input) to reproduce the
problem? Compare this FAQ on posting non-working code:

Cheers! --M

Certainly...

// Compiler Information
Version 9.0.21022.8 RTM
Microsoft .NET Framework
Version 3.5
Installed Edition: Enterprise
Microsoft Visual C++ 2008   91899-153-0000007-60443
// Operating System
Windows Vista

#include <string>
using std::string;

// This example should be compiled with visual studio 2008, with the
TR1 update
// TR1 Update Link :http://www.microsoft.com/downloads/details.aspx?FamilyId=D466226B-8DA...
#include <regex>
using namespace std::tr1;

int main(int argc, char* argv[])
{
        try
        {
                // this works
                regex pattern1( "<[\\?](.+)[\\?]>?" );
                // this fails
                regex pattern2( "<[\\?](?'groupName'.+)[\\?]>?" );
                // so does this
                regex pattern3( "<[\\?](?<groupName>.+)[\\?]>?" );
        }
        catch (std::exception& exc)
        {
                // shows up as "regular expression error", "unknown (?'groupName')
would have been nice :/ oh well
                string dbg = exc.what();
        }

        return 0;

}

Looking at the Dinkumware documentation, I don't see support for named
groups in the RE grammar.

http://www.dinkumware.com/manuals/default.aspx?manual=compleat&page=lib_regex.html

Am I missing something?

Cheers! --M
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,754
Messages
2,569,521
Members
44,995
Latest member
PinupduzSap

Latest Threads

Top