Thank you!

 

This looks much cleaner.

 

________________________________

From: Jialin Li [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, April 15, 2008 8:56 PM
To: Ley, Chung
Cc: beginners@perl.org
Subject: Re: Regular Expression Help

 


my $input =q(C:\Windows\%Person%\%Class%);

my @vars = $input =~ /%([^%]+)%/g;

local $, = $/;
print @vars;





On Tue, Apr 15, 2008 at 10:20 PM, Ley, Chung <[EMAIL PROTECTED]> wrote:

Hi,



I have a program that will take in a string that will resolve to a path
where the output is going to store.



The path can includes "variables" in this format "%<VariableName>%".
The acceptable variableNames that the program will support are fixed to
a list such as "Person", "Class", "Dept".  This list may grow in the
future; but for now it is fixed.



So, some of the acceptable strings are:

C:\Windows\%Person%\%Class%

C:\MyHomeDir\%Dept%\%Person%

C:\MyHomeDir\%Dept%_%Person%

and etc...



I like to develop a validate method to return false when the string in
between the % pair don't belong to the acceptable list, and was trying
to do that with an expression.

- Look for the string that is in between the "%" by the closest pair.

- The "%" pair must start at the "odd" occurrence and finish on the
"next even" occurrence...  Don't know how to describe this exactly, but
I don't want it to pack this up ("InBetween") from this
(C:\MyHomeDir\%Dept%InBetween%Person) even though it is in between a %
pair.

- Then compare the string within the "%" pair to see if it belongs to
the "acceptable" list or not.



Is using a regular expression the right approach here?  or I should just
iterate thru?



Thanks...



--Chung Ley

 

Reply via email to