2012-04-02 3 views
-5

Ich habe eine Zeichenfolge wie folgt:Wie würde ich alles außer String in Perl entfernen?

component.kw1_tap/rt (path/to/file1/kw1) (path/to/file2/kw2) 

Ich bin in der Lage, die unerwünschten Zeichen zu entfernen und eine saubere Zeichenfolge wie folgt erzeugen:

component kw1 tap rt path to file1 kw1 path to file2 kw2 

jetzt habe ich alles, aber kw1 und kw2 entfernen möchten, so sollte meine letzte Zeichenfolge sein:

kw1 kw2 

Vielen Dank.

EDIT: die Zeichenfolgen können ändern und die Position der Schlüsselwörter (KW) kann sich auch ändern.

+0

i negativ nicht bewertet werden dagegen, aber wenn es einen Grund gegeben ist, die von ihm etwas real und etwas zu lernen macht. – infinitloop

+1

Sagen Sie, wie soll der Computer wissen, was 'kw1' und' kw2' sind? Werden sie immer gleich sein, wird etwas um sie herum immer gleich sein ...? Das ist die Art von Informationen, die Sie in Ihre Frage aufnehmen müssen, damit es einen Sinn ergibt. – cHao

+0

Entschuldigung, wenn ich hier Verwirrung geschaffen habe, sind kw1/kw2 nur Schlüsselwörter, nach denen ich suche. Die Saiten können sich natürlich ändern. – infinitloop

Antwort

2

Dies ist eine lange Geschichte, da Sie keine Ahnung haben, was das Besondere an kw1 und kw2 ist, das nicht auf die restlichen Wörter in Ihrer Zeichenfolge zutrifft.

Vielleicht funktioniert das für Sie?

use 5.12.0; 

my $s = 'component.kw1_tap/rt (path/to/file1/kw1) (path/to/file2/kw2)'; 

my @keywords = $s =~ m|([^/]+?)\s*\)|g; 

say for @keywords; 

Ausgang

kw1 
kw2 

EDIT

Wenn es wichtig ist, dass die Zeichenfolge sollte an Ort und Stelle bearbeitet werden, dieser Code verwendet die gleiche Technik

use 5.12.0; 

my $s = 'component.kw1_tap/rt (path/to/file1/kw1) (path/to/file2/kw2)'; 

$s = join ' ', $s =~ m|([^/]+?)\s*\)|g; 

say $s; 

Ausgang

kw1 kw2 
+0

Es sollte eine Zeile Ausgabe oder noch bessere Zeichenfolge Änderung sein ... –

+0

@ downvoter: Bitte lassen Sie mich das Problem mit meiner Antwort wissen? – Borodin

+0

Nur wundernd ... was ist mit diesem Code erfordert Perl v5.12? – cHao