opi: komplexer regulärer Ausdruck

Beitrag lesen

Hallo,

-vor einem bestimmten Wort ('def') können 0 bis 2 Wörter stehen.[?]
-keines dieser voranstehenden Wörter darf 'tst' oder 'tzt' heißen[?]
-dann kommt also das gegebene Wort: 'def'
-nachfolgend soll alles ermittelt/ausgelesen/gematcht werden bis zum nächsten Punkt. den geeigneten Regexp hierfür habe ich bereits...

Wenn ich dich richtig verstanden habe, dann dürfte nur

'foo bar def string' und 'bar foo def string'

in meinem Beispiel erkannt werden.

  
#!/usr/local/bin/perl -w  
use strict;  
  
my @string = ('tst tzt def string','foo tzt def string','foo tst def string','tzt bar def string','tst bar def string','foo bar def string','bar foo def string');  
  
foreach (@string) {  
   next unless /^([a-su-z][a-rt-x][a-su-z]\s*[a-su-z][a-rt-x][a-su-z])\s*def\s*(.+)$/;  
   print "$2\n";  
}  

Greez,
opi

--
Selfcode: ie:( fl:( br:^ va:) ls:] fo:) rl:( n4:? ss:| de:] ch:? mo:|