Hi,
I'm using the Regex library for the first time with Visual Studio 2008. I've created a simple win32 console project, which works fine.
The code is
-------------------------------------
const char *pattern = "^(\\w*)\\s*=\\s*(\\w*).*";
const char *text = "Key = Value; Comment";
boost::regex re(pattern);
boost::cmatch match;
std::cout << pattern << std::endl;
std::cout << text << std::endl;
if (regex_match(text, match, re)) {
std::cout << "--> " << match.size() << std::endl;
for (int i = 0; i < match.size(); ++i) {
std::cout << i << ": " << match[i] << std::endl;
}
}
-------------------------------------
And the output is as expected:
--------------------------------------
^(\w*)\s*=\s*(\w*).*
Key = Value; Comment
--> 3
0: Key = Value; Comment
1: Key
2: Value
--------------------------------------
However, I've tried to use the same code with the C/C++-API of a commercial software, and here I get the following output:
--------------------------------------
^(\w*)\s*=\s*(\w*).*
Key = Value; Comment
--> 3
- 0: Key = Value; Comment
- 1: Key = Value; Comment
- 2: Value; Comment
--------------------------------------
Does anybody have an idea what's wrong here? Unfortunately, I'm not allowed to post any header files, so I need some hints where to look for a solution by myself.
Thanks for any help!
Regards
Carsten Witzel