ABER: Sobald ein OR im Lookaround enthalten ist fängt PERL das Meckern an (darf keine dynamische Länge haben).
Das müsstest du vielleicht doch mal näher erklären.
Achso und das ganennte Beispiel würde ja sowieso nicht funktionieren, da ich nicht einen substring suche, der einen text nicht enthält sonder sicherstellen will, dass ein text keinen substring enthält...
Du hast entweder mein Beispiel oder ich dein Problem nicht verstanden. Mal angenommen, du hättest folgenden festgelegten Aufbau, die Strings können dabei unterschiedliche Längen aufweisen:
"String1-String2-String3-String4"
String 2 darf alles außer bestimmte Wörter sein. Dann sähe ein möglicher RegExp so aus:
/^String1-(?!(willichnicht|willichauchnicht)-).+?-String3$/
Nochmal ein Codeschnipsel zum Veranschaulichen:
while (<DATA>) {
chomp($_);
if ($_ =~ /^String1\-(?!(Foo|Blub|Laber)\-).+?\-String3\-String4$/ ) {
print "$.: $_ - matched\n";
}
else {
print "$.: $_ - not matched\n";
}
}
__DATA__
String1-Brb-String3-String5
String1-Laber-String3-String4
String1-Rhabarber-String3-String4
String1-Foobarz-String3-String4
String1-Blub-String3-String4
String1-Blubber-String3-String4
Ergibt:
1: String1-Brb-String3-String5 - not matched ("String5" nicht erlaubt)
2: String1-Laber-String3-String4 - not matched ("Laber" nicht erlaubt)
3: String1-Rhabarber-String3-String4 - matched
4: String1-Foobarz-String3-String4 - matched ("Foo" zwar nicht erlaubt, aber "Foobarz")
5: String1-Blub-String3-String4 - not matched ("Blub" nicht erlaubt)
6: String1-Blubber-String3-String4 - matched ("Blub" zwar nicht erlaubt, aber "Blubber")
Kommen wir einander näher?
Siechfred