Forum: Ruby problems with regular expressions and parenthesis

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Daniel F. (Guest)
on 2008-11-01 22:33
hi,
i'm having some trouble with regular expressions in ruby.
If I have a regular expression like this:
^([\x20-\x7E]|\w){1,40}$, it will crash ruby if there are more than
forty characters in it.  I don't understand what is wrong with this
expression, if my expression is changed to
^([\A-Za-z]|\w){1,40}$ it works perfectly well
so does this one: ^([\x20-\x7E]|\w){1,40}$
am I missing something obvious?
William J. (Guest)
on 2008-11-02 01:57
(Received via mailing list)
Daniel F. wrote:

> hi,
> i'm having some trouble with regular expressions in ruby.
> If I have a regular expression like this:
> ^([\x20-\x7E]|\w){1,40}$, it will crash ruby if there are more than
> forty characters in it.  I don't understand what is wrong with this
> expression, if my expression is changed to
> ^([\A-Za-z]|\w){1,40}$ it works perfectly well
> so does this one: ^([\x20-\x7E]|\w){1,40}$

What do you mean by "so does this one"?

It's the same as the first one.
Daniel F. (Guest)
on 2008-11-02 03:21
Daniel F. wrote:
> hi,
> i'm having some trouble with regular expressions in ruby.
> If I have a regular expression like this:
> ^([\x20-\x7E]|\w){1,40}$, it will crash ruby if there are more than
> forty characters in it.  I don't understand what is wrong with this
> expression, if my expression is changed to
> ^([\A-Za-z]|\w){1,40}$ it works perfectly well
> so does this one: ^([\x20-\x7E]|\w){1,40}$
> am I missing something obvious?

Sorry, copied it wrong:
 /^([A-Za-z]|\w|\s){1,40}$/
Could it have something to do with some parts of it overlapping?
Daniel F. (Guest)
on 2008-11-02 03:27
Daniel F. wrote:
> Daniel F. wrote:
>> hi,
>> i'm having some trouble with regular expressions in ruby.
>> If I have a regular expression like this:
>> ^([\x20-\x7E]|\w){1,40}$, it will crash ruby if there are more than
>> forty characters in it.  I don't understand what is wrong with this
>> expression, if my expression is changed to
>> ^([\A-Za-z]|\w){1,40}$ it works perfectly well
>> so does this one: ^([\x20-\x7E]|\w){1,40}$
>> am I missing something obvious?
>
> Sorry, copied it wrong:
>  /^([A-Za-z]|\w|\s){1,40}$/
> Could it have something to do with some parts of it overlapping?

Sorry, got it wrong again,  these expression do not work:
/^([A-Za-z]|\w|\s){1,40}$/
^([\x20-\x7E]|\w){1,40}$

and these do:
/^([\x20-\x7E]|\s){1,40}$/
/^([A-Za-z]|\w){1,40}$/
/^([A-Za-z]|\w){1,40}$/
sorry about that
This topic is locked and can not be replied to.