2010-12-14 6 views
2

Ich habe eine Variable - 2 Wörter durch ein Leerzeichen getrennt: $ var = "xxxx yyyy". In Perl, wie verwende ich reguläre Ausdrücke $ var = "xxxx"Wie hackt man nach einem Leerzeichen Zeichen ab?

Danke, Trinity

+0

Danke allen, Perl ist seinem Wort treu - es gibt mehr als eine Möglichkeit es zu tun :) – trinity

Antwort

4

ersetzen \s.+$ durch nichts zu machen:

$var =~ s/ .+$// 

(per schwer Kommentar)

+0

+1! Das wäre '$ var = ~ s/\ s. + $ // g', oder? – jwueller

+0

@elusive: Ich habe keine Ahnung. Ich habe noch nie Perl benutzt :-). Ich habe '= ~' für das Matching verwendet, vielleicht funktioniert es auch für die Substitution, aber Perl ist so Syntax-lastig, dass ich es wirklich nicht weiß. – Joey

+0

@elusive Richtig du bist. Aber warum füge das 'g' hinzu; "global bis zum Ende"? – canavanin

1
$var = (split//, $var, 2)[0]; 

Oder

($var) = $var =~ /^(\S+)/; 
2

Sie nicht! Okay, könnte man, aber warum?

Es ist nicht ganz eine vorzeitige Optimierung, sondern eher eine "Vermeidung des goldenen Hammers".

+1

Oder nur 'substr ($ var, index ($ var, '')) =" ";' –

+0

++ für die Verwendung von substr als Lvalue! – Hugmeir

+0

Cute, ich denke, es ist schon lange her, dass ich sowas benutzt habe und das war in VB 6 mit 'Mid $' ;-) – Joey

Verwandte Themen