Regex Question
Posted: Fri Aug 22, 2008 6:44 pm
How does newLISP control the value of system variables in regex? It seems they are set only on non-nil regex results.
> (regex ".*([aeiou]{2}).*" "Seattle")
("Seattle" 0 7 "ea" 1 2)
> $1
"ea"
> (regex ".*([aeiou]{2}).*" "San Francisco")
nil
> $1
"ea"
>
If this is the intended behavior it should probably be documented. I would argue that nil is a result and that $1 should return nil when the regex evaluates to nil. This was an issue recently because I was checking for $1 to be nil rather than the regex expression itself. The regex evaluated to nil but $1 retained a previous value.
John
[/i]
> (regex ".*([aeiou]{2}).*" "Seattle")
("Seattle" 0 7 "ea" 1 2)
> $1
"ea"
> (regex ".*([aeiou]{2}).*" "San Francisco")
nil
> $1
"ea"
>
If this is the intended behavior it should probably be documented. I would argue that nil is a result and that $1 should return nil when the regex evaluates to nil. This was an issue recently because I was checking for $1 to be nil rather than the regex expression itself. The regex evaluated to nil but $1 retained a previous value.
John
[/i]