Wie benutzt man preg_replace, um etwas von einem bestimmten Zeichen bis zum Ende eines Strings zu entfernen?

8

Hallo Ich muss alle Zeichen aus dem '_' bis zum Ende der Zeichenfolge entfernen.

Ich habe es versucht mit:

%Vor%

... aber nein.

Die Idee ist, den Unterstrich '_' und alle Zeichen auf der rechten Seite zu entfernen.

Danke

    
walter 30.12.2010, 09:29
quelle

7 Antworten

11

Das Folgende wäre viel schneller;

%Vor%     
Erik 30.12.2010 09:33
quelle
6

Das Muster /_*/ stimmt mit null oder mehr aufeinanderfolgenden _ überein. So wird merry_christmas in merrychristmas umgewandelt.

Was Sie brauchen, ist /_.*/s , das mit einem _ übereinstimmt, gefolgt von null oder mehr beliebigen Zeichen (beachten Sie die s Modifizierer ):

%Vor%

Aber wie die anderen bereits erwähnt haben, ist die Verwendung von regulären Ausdrücken möglicherweise nicht der beste Weg. Berücksichtigen Sie auch die anderen erwähnten Lösungen, die grundlegende Zeichenfolgenoperationen verwenden. Nicht alle von ihnen sind so lesbar wie ein regulärer Ausdruck wie der obige (wichtiger: Sie könnten ein unerwartetes Ergebnis zurückgeben, wenn in der Zeichenfolge kein _ vorhanden ist). Aber unter bestimmten Umständen könnten sie schneller sein.

    
Gumbo 30.12.2010 11:19
quelle
3

Sie brauchen keine regulären Ausdrücke, Sie können explode ( substr ist wahrscheinlich besser, aber ich möchte eine andere Alternative zeigen):

%Vor%

Ihre Ausdrücke funktionieren nicht, weil nur mit einer Variablennummer von _ übereinstimmt, nicht mit anderen Zeichen.

    
Felix Kling 30.12.2010 10:52
quelle
1

es ist "und alles nach dem Unterstrich", also benutze

%Vor%     
太極者無極而生 30.12.2010 09:34
quelle
1

Vergessen Sie nicht strstr() , insbesondere den Parameter $before_needle , der ab PHP 5.3.0 verfügbar ist.

%Vor%     
salathe 30.12.2010 11:26
quelle
0
%Vor%     
Poelinca Dorin 30.12.2010 09:32
quelle
0

Ihr Muster ist falsch, sollte es auf '/_.*/' setzen:

%Vor%

Das '.' bedeutet jedes Zeichen, schauen Sie sich das Tutorial reg_ex an

    
spuas 30.12.2010 09:33
quelle

Tags und Links