Thread Regex - Exakten String ersetzen (6 answers)
Opened by YAPD at 2021-04-18 18:02

Linuxer
 2021-04-18 20:18
#193221 #193221
User since
2006-01-27
3870 Artikel
HausmeisterIn

user image
Keine Ahnung, ob ich Dich hiermit richtig verstehe...

Ich würde es nicht erst splitten und dann ein Substitute drüber jagen.
Sondern entweder mit einem Regex-Match den letzten Teil vom Rest trennen;
oder komplett am :: splitten und dann die gewünschten Teile verwenden.

Variante 1:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#! /usr/bin/env perl
use strict;
use warnings;
use 5.020;

my $package = "Kernel::Extensions::IMCR::Loader";

my ( $module, $caller ) = $package =~ m{(\S+)::([^:]+)$};

say "Package: $package";
say "Module:  $module";
say "Caller:  $caller";


__END__;



Variante 2:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#! /usr/bin/env perl
use strict;
use warnings;
use 5.020;

my $package = "Kernel::Extensions::IMCR::Loader";

my @elements = split m/::/, $package;
my $caller   = pop @elements;
my $module   = join "::", @elements;

say "Package: $package";
say "Module:  $module";
say "Caller:  $caller";

__END__;

Last edited: 2021-04-19 09:51:55 +0200 (CEST)
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Regex - Exakten String ersetzen