Schrift
[thread]8834[/thread]

RegEx: qr//: mit Variablen

Leser: 2


<< >> 3 Einträge, 1 Seite
pktm
 2007-03-12 19:00
#74978 #74978
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!

Ich habe da einen gigantische regulären Ausdruck, in welchem ich 2 Variablen als Platzhalter verwende. DIese Variablen werden z.Zt. direkt über der Deklaration der RegEx erzeugt.

Jetzt würde ich diese RegEx gerne in eine Konfiguraionsdatei auslagern, weil ich so begeistert von ihr bin, dass ich die in ganz vielen Programmen benutzen möchte! (letzteres = kleiner Scherz)

Geht das irgendwie, dass ich in der RegEx sage, dass an eine bestimmte Stelle etwas eingesetzt werden soll, was ich aber erst irgendwo anders im Programm deklareiere?
So nach der Art:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
$CFG{regex} = qr/
$_[0]
(?:b|c)*
$_[1]
/x;

# irgendwo anders auf der Welt:
my $r = $konfiguration->get('regex');
if( 'abcccbbcd' =~ $r('a','d') ) {
   print "Toll! Gefunden!\n";
}


Geht das?
Nicht, dass ich sterben würde wenn es nicht ginge, aber zum einen verwende ich die RegEx an mehreren Stellen und müsste sie folglich immer mehrfach schrieben und zum anderen ist es doof, wenn man bei Änderungen immer x Stellen im Quelltext aktualisieren muss.

Grüße, pktm\n\n

<!--EDIT|pktm|1173718873-->
http://www.intergastro-service.de (mein erstes CMS :) )
renee
 2007-03-12 19:28
#74979 #74979
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
So ungefähr könnte es gehen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
package MyRegEx;

sub compile{
my ($eins,$zwei) = @_;
my $re = qr/
$eins
(?:b|c)*
$zwei
/x;
return $re;
}

1;


Code: (dl )
1
2
3
4
5
use MyRegEx;

if($string =~ MyRegEx::compile('a','n')){
print "matched\n";
}


(ungetestet)\n\n

<!--EDIT|renee|1173721977-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pktm
 2007-03-12 19:40
#74980 #74980
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Ja Wahnsinn! Genau so geht es! Danke!

Die Sache mit den packages sollte ich mir endlich mal genauer ansehen. Mir fällt sowas nie ein :-/
http://www.intergastro-service.de (mein erstes CMS :) )
<< >> 3 Einträge, 1 Seite



View all threads created 2007-03-12 19:00.