The original regex matched on
lower case
then
uper case
then
digits
then
white space
then
the separator
then
lower case
then
uper case
then
digits
then
white space
This is not what you wanted.
If '>' is the separator then you should match on:
anything other than the separator
then
the separator
then
anything other than the separator
if ( /^([^>]*)>([^>]*)$/ )
{ $string1 = $1;
$string2 = $2;
}
Also this anchors the match at the beginning and the end of the string so it's
a more complete solution.
Don
On Saturday 30 October 2004 16:51, [EMAIL PROTECTED] wrote:
> Hi All,
> I have to match patterns of the format
> string1>string2
> where the strings 1 & 2 can contain alphabets,numbers and spaces. The
> string are separated by '>' sign. I wrote the following code for this.
>
> if(/([a-z]*[A-Z]*[0-9]*[\s]*)>([a-z]*[A-Z]*[\s]*[0-9]*)/g) {
> $string1 = $1;
> $string2 = $2;
> }
>
> This picks up only the first character in string 2 whereas I want
> everything till the end of the $_ to be in the string. $_ is terminated
> by \n.
>
> I cannot understand what I am missing in the regular expression.
>
> Thanks.
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>