Thread split at '[ ]'
(13 answers)
Opened by firstday at 2013-04-24 19:20
[ leitet unmaskiert innerhalb von (Regex-) Pattern eine sogenannte Zeichenklasse ein.
Wenn Du es als reines "echtes" Zeichen verwenden willst, musst Du es explizit maskieren. (erweitertes) Beispiel: Code (perl): (dl
)
1 2 3 4 5 6 7 my $text = "[URL]http://www.perl-community.de[/URL]"; # split-Pattern: eckige Klammern maskiert; / ist optional; dadurch ist der Ausdruck kuerzer # das grep sammelt alle Ergebnisse ein, deren Stringlaenge mindestens 1 betraegt my @fields = grep { length > 0 } split m{\[/?URL\]}, $text; print "@fields\n"; edit: oder etwas umgeändert: Code (perl): (dl
)
1 2 3 4 5 6 7 my $text = "[URL]http://www.perl-community.de[/URL] bla bla [URL]https://example.org[/URL] bla bla "; # split-Pattern: eckige Klammern maskiert; / ist optional; dadurch ist der Ausdruck kuerzer # das grep sammelt (sehr grosszuegig) alle Ergebnisse ein, die mit einer Protokoll-Angabe wie "ftp://" oder "http://" beginnen my @fields = grep { m{\A\w+://} } split m{\[/?URL\]}, $text; print join "\n",@fields, ''; Last edited: 2013-04-24 23:08:58 +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! |