Boost logo

Boost Users :

From: Daniel Lord (daniel_at_[hidden])
Date: 2008-03-12 11:08:50


Dave,I am using 10.5.2 and Xcode 3.0 and it compiles and runs fine for me.
I know that isn't much help but its does add weigh to the idea that the test
case isokay from a stability point. However...

 I changed the the HTML source adding a simple script: "<html><head><script
src=\"script.js\"></script><title>Some title</title></head><body>Hello,
world!</body></html>" (don't worry the escaped double quotes don't appear in
the actual string object -- I verified with the debugger) and although my
Regex tester in the Komodo IDE shows a group match for regex, the
substitution fails for some reason. I'll need to look at the docs; perhaps
you need to add some error checking--something isn't right.

Daniel

-- 
Some people building C++/Obj-C code on OS X with Xcode and who have a
problem to solve think: "I know, I'll use the Boost Libraries". Now they
have two problems--three if they are planning on using Boost for regular
expressions.
On 3/12/08, Dave DeLong <davedelong_at_[hidden]> wrote:
>
> My platform is Mac OS X 10.5.2.  I'm compiling and running via Xcode 3.0.
>  Boost is version 1.34.1 (I installed it in the last two weeks).  It was
> compiled on this machine by running "sudo make install", which installed it
> in /usr/local/include/boost.  The library files are in /usr/local/lib.  In
> my project specification, I specify those paths in my Library and Header
> search paths, and also add the linker option "-lboost_regex".
>
> The following code gets a EXC_BAD_ACCESS error and never executes the
> catch blocks:  (I realize that the pageSource doesn't actually have a
> <script> tag;  That's because I don't know if the pages I'll be parsing will
> have one.  However, the code still fails even if there is a
> <script>TESTSCRIPT</script> tag in there.)
>
>
> #include <iostream>
> #include <boost/regex.hpp>
> #include <string>
>
>
> using namespace std;
>
>
> int main (int argc, char * const argv[]) {
>  string * pageSource = new string("<html><head><title>Some
> title</title></head><body>Hello, world!</body></html>");
>  try {
>  boost::regex tagRegex("(?:i)<script[^>]*>.*?</script[^>]*>");
>  string replaced = boost::regex_replace(*pageSource, tagRegex, " ",
> boost::match_default);
>  delete pageSource;
>  pageSource = new string(replaced);
>  } catch (exception &e) {
>  cout << e.what() << endl;
>  } catch ( ... ) {
> cout << "Unknown exception" << endl;
>  }
>
>
>  cout << *pageSource << endl;
>
>
> delete pageSource;
>     return 0;
> }
>
>
>
> Any help would be greatly appreciated, as this project is due tomorrow.
>  =)
>
>
> Thanks,
>
>
> Dave
>
>
> On 12 Mar, 2008, at 7:50 AM, John Maddock wrote:
>
> Dave DeLong wrote:
>
> Ah, you're right.  That was one of my attempts to fix it (which you
>
> can guess didn't work).
>
>
> As for the inefficiency, this is my first stab at regex.  =)
>
>
> Here's the complete function as it stands (or doesn't, since it still
>
> crashes):
>
>
> void Page::removeScriptTags() {
>
> boost::regex tagRegex("(?:i)<script[^>]*>.*?</script[^>]*>");
>
> string source(*pageSource);
>
> string replaced = boost::regex_replace(source, tagRegex, " ",
>
> boost::match_default);
>
> delete pageSource;
>
> pageSource = new string(replaced);
>
> }
>
>
> That looks fine as it stands, but unless you can reduce it to a complete
> test case that I can compile and run here it still doesn't help much.
>  Also
> what compiler, platform and Boost version are you using?  Also please
> check
> that there isn't some binary-compatibity issue going on: building your app
>
> with different options than Boost was built with, or linking to a library
> file that's from a different Boost version to the headers you're
> #including
> etc...
>
> John.
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>
>
>
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>


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