Hi,

I tried to write a script to extrat data from the given DATA but I can find
the right regular expression to do that.
RULE: I need to catch everything between quotes (single or double) and if
inside exists a repeated quote (single or double) it is not seen as end of
the match.

#!/usr/bin/perl -w

use strict;

my $begin = '[\",\']'; #
my $end = '[\",\']'; #
my $pattern = "${begin}(.*?)${end}"

while (<DATA>) {
        print "line content $_ \n"
        while ( /$pattern/g ){
                print "line $. found : $1\n"
        }

}


__DATA__
' data11 '' data12' 'data13'
" data21 "" data22" "data23"
" data31 '' data32" "" "data34"
"data41" "data42" "data43" "__--data44"
""""  "''" '""' ''''



Result should be
1:( data11 '' data12)
2:(data13)
3:( data21 "" data22)
4:(data23)
5:(data31 '' data32)
6:()
7:(data34)
8:(data41)
9:(data42) 
10:(data43)
11:(__--data44)
12:("")
13:('')
14:("")
15:('')

 
It could be resolved by replacing the \"{2} or \'{2} by a "[EMAIL PROTECTED]" and
alterwards relacing it back to the previous value but it is not very smart.



great thanks in advance

Michel

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to