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
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
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
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
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