Boost.regex expression construction

Hi Guys I am using boost.regex to check whether a string has opening and closing brackets. The problem is the expression doesnt work. I have tried all sorts of combos and read up the doc too to no avail. Can someone tell me whether the following does what its supposed to (i.e. look for opening/closing brackets in a string): boost::regex e("[\\(\\)]"); /*check for opening/closing brackets*/ Regards

Shaolin wrote:
Hi Guys
I am using boost.regex to check whether a string has opening and closing brackets. The problem is the expression doesnt work. I have tried all sorts of combos and read up the doc too to no avail. Can someone tell me whether the following does what its supposed to (i.e. look for opening/closing brackets in a string):
boost::regex e("[\\(\\)]"); /*check for opening/closing brackets*/
Regards
I'm afraid it's not clear enough what you are trying to match here. Perhaps you could give us an example of a string which would match the expression? Regards, Gevorg

Hello Gevorg, An example string: (4+1)*2 - I want to return true if the parentheses are found and false if there are none or there is a partial match ( e.g. (2+2+1 will return false because there is only one parenthese and hence the equation is incomplete). Regards On 11 March 2010 15:43, Gevorg Voskanyan <v_gevorg@yahoo.com> wrote:
Shaolin wrote:
Hi Guys
I am using boost.regex to check whether a string has opening and closing brackets. The problem is the expression doesnt work. I have tried all sorts of combos and read up the doc too to no avail. Can someone tell me whether the following does what its supposed to (i.e. look for opening/closing brackets in a string):
boost::regex e("[\\(\\)]"); /*check for opening/closing brackets*/
Regards
I'm afraid it's not clear enough what you are trying to match here. Perhaps you could give us an example of a string which would match the expression?
Regards, Gevorg _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users

Shaolin wrote:
Hello Gevorg,
An example string: (4+1)*2 - I want to return true if the parentheses are found and false if there are none or there is a partial match ( e.g. (2+2+1 will return false because there is only one parenthese and hence the equation is incomplete).
You can't really do parathesis matching with regular expressions.

Eric J. Holtman wrote:
Shaolin wrote:
Hello Gevorg,
An example string: (4+1)*2 - I want to return true if the parentheses are found and false if there are none or there is a partial match ( e.g. (2+2+1 will return false because there is only one parenthese and hence the equation is incomplete).
You can't really do parathesis matching with regular expressions.
True, if there can be nesting of parentheses. Otherwise, you can search for parenthesized non-empty sub-expressions with "\\([^\\(\\)]+\\)" Regards, Gevorg

Well, you could use something like "[\\(][^\\)]*[\\)]", ie match a left paren, any number of things that are not a right paren and then a right paren. Of course, a simple check like this can't detect all the ways is which the equation can still be incomplete or invalid (e.g. "(2++1)--3"). To really an truly make sure that the equation is well formed you could use the boost spirit library (have a look at the calculator example). --gs _____ From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Shaolin Sent: Thursday, March 11, 2010 10:57 AM To: boost-users@lists.boost.org Subject: Re: [Boost-users] Boost.regex expression construction Hello Gevorg, An example string: (4+1)*2 - I want to return true if the parentheses are found and false if there are none or there is a partial match ( e.g. (2+2+1 will return false because there is only one parenthese and hence the equation is incomplete). Regards On 11 March 2010 15:43, Gevorg Voskanyan <v_gevorg@yahoo.com> wrote:
Shaolin wrote:
Hi Guys
I am using boost.regex to check whether a string has opening and closing brackets. The problem is the expression doesnt work. I have tried all sorts of combos and read up the doc too to no avail. Can someone tell me whether the following does what its supposed to (i.e. look for opening/closing brackets in a string):
boost::regex e("[\\(\\)]"); /*check for opening/closing brackets*/
Regards
I'm afraid it's not clear enough what you are trying to match here. Perhaps you could give us an example of a string which would match the expression? Regards, Gevorg _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
participants (4)
-
Eric J. Holtman
-
Gevorg Voskanyan
-
Schrader, Glenn - 1002 - MITLL
-
Shaolin