Wie nehme ich die Teilzeichenfolge einer gegebenen Zeichenkette bis zum ersten Erscheinen des angegebenen Zeichens?

7

Die Frage ob für Perl.

Wenn ich zum Beispiel "hello.world" habe und das angegebene Zeichen '.' ist, dann ist das gewünschte Ergebnis "hello" .

    
Mihran Hovsepyan 24.11.2011, 11:36
quelle

5 Antworten

22

Siehe perldoc -f index :

%Vor%     
Jim Davis 24.11.2011, 11:41
quelle
5

Verwenden Sie substr :

%Vor%

Oder mit regexp:

%Vor%     
yko 24.11.2011 11:42
quelle
1
%Vor%

gibt Ihnen hello

    
canavanin 24.11.2011 11:42
quelle
1

Eine andere Möglichkeit:

%Vor%     
choroba 24.11.2011 11:52
quelle
1

Im Geiste von TIMTOWTDI und Einführung neuer Funktionen: nicht-destruktive Option /r

%Vor%

Das gierige .* end hackt alles nach der ersten Periode ab, einschließlich möglicher Zeilenvorschubzeichen (Option /s ), behält aber die ursprüngliche Zeichenfolge bei und beseitigt die Notwendigkeit, dass ein Listenkontext durch Parens erzwungen wird ( /r Option) ).

Zitat von perlop:

  

Wenn die Option / r (nicht-destruktiv) verwendet wird, wird der Befehl ausgeführt   Substitution auf einer Kopie der Zeichenfolge und anstatt die   Anzahl der Ersetzungen, gibt es die Kopie zurück, ob a   Substitution aufgetreten. Die ursprüngliche Zeichenfolge wird nie geändert, wenn / r ist   benutzt. Die Kopie wird immer eine einfache Zeichenfolge sein, auch wenn die Eingabe ein ist   Objekt oder eine gebundene Variable.

    
TLP 24.11.2011 14:07
quelle

Tags und Links