On 24/10/2013 12:54, Franks Andy (RLZ) IT Systems Engineer wrote:
Hi, thanks for the reply.
My original regex was
/^email:([a-z0-9_-]+(\\.[a-z0-9_-]+)*@[a-z0-9_-]+(\\.[a-z0-9_-]+)*(\\.[a-z]{2,4}))/ <mailto:*@[a-z0-9_-]+(\\.%5ba-z0-9_-%5d+)*(\\.%5ba-z%5d%7b2,4%7d))/>
You’re correct with the escaping thing, I was just quickly trying a shorter simpler version. I didn’t know you needed to escape characters inside a match [] though.
Anyway, online testers are working fine, just FR or the internal regex library that isn’t. I tried compiling with and without libpcre3-dev and no change.
If you're matching "-" in a "[]", it should be the first char, else it signifies a range. Like this: [-_.A-Za-z0-9] You shouldn't need to escape "-_." in "[]" in FR regexps; just put "-" first. Secondly, remember that anything you want to escape in a regexp will need double-backslash, as FR parser obeys \x even inside regexp //. We use a regexp like this: if (Realm =~ /^([-A-Z0-9]+(\\.[-A-Z0-9]+)+)$/) Notice the lack of backslash for "-" at the start of the range, and the double-backslashed "." to match a literal dot.