beatovich: Alles zwischen zwei Zeichen ausschneiden

Beitrag lesen

hallo

Hallo,

ich habe eine Bezeichnung z.B.

ich78bin_einzwei_5tg7g_zu_ein

jetzt möchte ich alles ausschneiden was zwischen dem ersten und dem zweiten _ ist.

Das ist jetzt Perl Syntax, aber das sollte eigentlich protierbar sein.

Dieser Wert soll dann in einer Variable gespeichert werden.

if( "ich78bin_einzwei_5tg7g_zu_ein" =~ /^.*?[_](.+?)[_]/x; ){
   $captured = $1
}

Im dritten Schritt soll aus dem was in der Variable steht nach den ersten drei Zeichen (Zahlen oder Buchstaben) ein / eingefügt werden.

my $test = "ich78bin_einzwei_5tg7g_zu_ein";
my $captured = undef;
if( $test =~ /^[^_]*[_](.+?)[_]/ ){
   $captured = $1;
   if( $captured =~ /^(.{3})(.*)$/ ){
     $captured = sprintf("%s/%s", $1, $2 );
   }
}
  • [_] steht für undercore char
  • [^_] steht für not underscore char
  • /^ $/ verankert das pattern am Start und Ende des teststrings
--
Neu im Forum! Signaturen kann man ausblenden!