Alles zwischen zwei Zeichen ausschneiden
bearbeitet von dedlfixhallo
> 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.
~~~perl
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.
>
~~~perl
my $test = "ich78bin_einzwei_5tg7g_zu_ein";
my $captured = undef;
if( $test =~ /^ [^_]* [_] (.+?) [_] /x; ){
$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!
Alles zwischen zwei Zeichen ausschneiden
bearbeitet von dedlfixhallo
> 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.
>
~~~perl
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!
Alles zwischen zwei Zeichen ausschneiden
bearbeitet von beatovichhallo
> 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.
>
~~~perl
my $test = "ich78bin_einzwei_5tg7g_zu_ein";
my $captured = undef;
if( $test =~ /^ [^_]* [_] (.+?) [_] /x; ){
$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!
Alles zwischen zwei Zeichen ausschneiden
bearbeitet von beatovichhallo
> 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.
>
~~~perl
my $test = "ich78bin_einzwei_5tg7g_zu_ein";
my $captured = undef;
if( $test =~ /^ [^_]* [_] (.+?) [_] /x; ){
$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!