Schrift
[thread]8792[/thread]

Regular Expression auf Zeile anwenden



<< >> 2 Einträge, 1 Seite
Gast Gast
 2007-02-27 08:52
#74623 #74623
Hallo,

ich habe diese Frage schon in einem anderen Forum gestellt, nur leider konnte mir keiner helfen. Vielleicht könnt ihr mir weiterhelfen!? Muss dies unbedingt lösen. Die Quelldatei kann leider nicht geändert werden und muss so übernommen werden!

Meine Frage:

ich komme einfach nicht weiter und weiß auch nicht mehr wie ich diese Problem lösen kann. Und zwar:

Ich habe eine Zeile:

Test1 Test2 Test3 "Test 4" Test5

Jetzt sollen mir alle Wörter rausgefiltert werden. Zwischen den Wörtern stehen Leerzeichen! Das Test 4 erhalte ich durch:

=~ /"(.+?)"/g

und immer bei Leerzeichen trennen erhalte ich durch:

=~ /"(\s+)"/g

Nur wie kann ich die beiden kombinieren und dann bei =~ /"(\s+)"/g auch die Wörter mit ".." ausschließen.

Könnt ihr mir weiterhelfen?

Vielen Dank
renee
 2007-02-27 09:34
#74624 #74624
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Das hier ist eine Lösung:
Code: (dl )
1
2
3
4
5
6
7
8
9
#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;

my $string = 'Test1 Test2 Test3 "Test 4" Test5';
my @words = grep{ defined $_ and $_ ne q{} }($string =~ /\s*"(.*?)"\s*|\s*(\S*)\s*/g);
print Dumper(\@words);
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 2 Einträge, 1 Seite



View all threads created 2007-02-27 08:52.