Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

regexp quantifiers som variabel?

0 views
Skip to first unread message

Morten P

unread,
May 10, 2009, 1:54:46 AM5/10/09
to
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

unread,
May 10, 2009, 4:20:13 AM5/10/09
to
"Morten P" <sp...@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

unread,
May 11, 2009, 3:13:55 AM5/11/09
to

> 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

unread,
May 11, 2009, 5:09:48 AM5/11/09
to
"Morten P" <sp...@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

Morten P

unread,
May 14, 2009, 5:20:24 PM5/14/09
to

"Peter Makholm" <pe...@makholm.net> wrote in message
news:87fxfc6...@vps1.hacking.dk...
> "Morten P" <sp...@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.

Perfekt!
Tak for suver�n hj�lp :-)


0 new messages