/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
regexp quantifiers som variabel?
Fra : Morten P


Dato : 10-05-09 06:55

Jeg har behov for at have f.eks. case insensitive match parametret i en
variabel.

my $quant = 'gi';
my $res = $str =~ /expr/$quant;


Jeg har forsøgt med diverse krumspring uden held, og er helst fri for
eval().

Kan det lade sig gøre?



 
 
Peter Makholm (10-05-2009)
Kommentar
Fra : Peter Makholm


Dato : 10-05-09 09:20

"Morten P" <spam@spam.spam> writes:

> Jeg har behov for at have f.eks. case insensitive match parametret i en
> variabel.
>
> my $quant = 'gi';
> my $res = $str =~ /expr/$quant;

> Kan det lade sig gøre?

Ja. Du kan gøre det med (?imsx-imsx:pattern) konstruktionen, hvor
bogstaver mellem ? og : opfattes som flag.

//Makholm


Morten P (11-05-2009)
Kommentar
Fra : Morten P


Dato : 11-05-09 08:14


> Ja. Du kan gøre det med (?imsx-imsx:pattern) konstruktionen, hvor
> bogstaver mellem ? og : opfattes som flag.

Den forstår jeg ikke!
Og kan slet ikke få det til at fungere

my $str = 'abc';
my $res = $str =~ /ABC/(?i:);


Hvad er den korrekte syntaks?
(Og hvad hedder konceptet?)



Peter Makholm (11-05-2009)
Kommentar
Fra : Peter Makholm


Dato : 11-05-09 10:10

"Morten P" <spam@spam.spam> writes:

>> Ja. Du kan gøre det med (?imsx-imsx:pattern) konstruktionen, hvor
>> bogstaver mellem ? og : opfattes som flag.
>
> Den forstår jeg ikke!

> Hvad er den korrekte syntaks?

Det skal indgå som en del af dit regulære udtryk, hvor den del som
flaget skal virke på er 'pattern'. Det er beskrevet i 'perldoc perlre'
som tredje mulighed under overskriften 'Extended Patterns'. Kaldes
normalt for 'non-capturing parentheses'

Når jeg nu læser dokumentationen, så virker det mere indlysende at
bruge muligheden for 'embedded pattern-match modifiers' beskrevet lige
før. Der er også næsten et skeempel der er tæt på hvad du
efterspørger.

//Makholm

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste