Frage

Ich habe Probleme mit der richtigen Regex Zeichenfolge kommen bis zu einer Folge von mehreren zu entfernen? Figuren. Ich möchte mehr als eine sequenzielle ersetzen? mit einem einzigen?, aber die Zeichen zu entkommen ... mich entweicht.

Beispiel Eingabe:

  

Ist das Ding auf ??? oder was ???

Gewünschte Ausgabe:

  

Ist das Ding an? oder was?

Ich bin mit preg_replace () in PHP.

War es hilfreich?

Lösung

preg_replace('{\?+}', '?', 'Is this thing on??? or what???');

Das heißt, Sie nur das Fragezeichen entkommen müssen, das Plus in „\? +“ Bedeutet, dass wir jede Instanz mit einem oder mehreren Zeichen sind zu ersetzen, obwohl ich vermute, „\ {2}“ sein könnte noch besser und effizienter (jede Instanz mit zwei oder mehr Fragezeichen Zeichen ersetzt werden.

Andere Tipps

preg_replace( '{\\?+}', '?', $text );

sollte es tun.

Sie müssen die Fragezeichen selbst mit einem Backslash zu entkommen, und dann die Flucht der Backslash selbst mit einem anderen Backslash.

Es sind Situationen wie diesen, wo C # 's wörtlich Strings sind nett.

Das sollte funktionieren (ich habe es getestet):

preg_replace('/\?+/', '?', $subject);
preg_replace('/\?{2,}/','?',$text)

Dies sollte es tun

preg_replace('/(\?+)/m', '?', 'what is going in here????');

das Fragezeichen muss maskiert werden und der m ist für mehrzeilige-Modus.

Dies war eine gute Website, um es auszuprobieren unter http://regex.larsolavtorvik.com/

str_replace('??', '?', 'Replace ??? in this text');

Haben Sie das Muster versucht

[?]+

mit dem Ersatz von ??

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top