Problems with regular expressions and parenthesis


#1

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?


#2

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.


#3

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?


#4

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