"Edward" == Edward Diener
writes: Edward> Edward> Once you find your IMG match and pick up your ALT sub-match Edward> from it, you can use regex_format to change your IMG match to Edward> whatever you like based on the string you find in your ALT Edward> sub-match.
My post was poorly written; my point was buried under a lot of text. My apologies for that, and let me try to be clearer. Consider these image tags, and how to submatch on the phrase "alternate text": 1) <img SRC="x.gif" ALT="alternate text"> 2) <img SRC="x.gif" BORDER="0" ALIGN="left" ALT="alternate text"> 3) <img SRC="x.gif" whocares="nobody" another_attribute="why?" ALT="alternate text"> I think I can write one that submatches on 1. For two and three, I would like to have a part of my regular expression that matched anything except whitespace, ALT, =, ". I can write a regular expression that matches anything but one character, or anything but a number of character, but how do I write one that would match anything but a word ? It seems to me that the best way would be to make a regular expression for the word, and negate it in the regular expression you actually use: static const boost::regex start_of_alt(" \\s+ /* at least one whitespace */ alt\\s* /* alt followed by 0 or more whitespace */ =\\s* /* = followed by 0 or more whitespace */ \" /* a quote */ ", boost::regbase::normal | boost::regbase::icase); static const boost::regexp img_tag_with_alt_submatch(" <\\s* /* a <, followed by 0 or more whitespace */ img\\s+ /* IMG, followed by at least one whitespace */ ^@start_of_alt /* anything that doesn't match the previously /* defined regular expression start_of_alt */ @start_of_alt /* the start_of_alt regular expression defined /* above */ ([^\"])* /* 0 or many instances of not-a-quote, in the /* sub-matching parens */ [^>]*> /* anything except a >, and then the > */ ", boost::regbase::normal | boost::regbase::icase); Is there a way to refer to previous regular expressions within another regular expression, as I did in the lines that use "@start_of_alt" ? --Rob