Webstatt.org - Community seit 2006 - 2012 (2024?)

[RegExp] Möglich?

user-343
15.06.2006 19:36

(Ich hasse es kurze, aber aussagkräftige Titel auszusuchen)

Eine Frage: Ist es mittels split Möglich einen String bei "-Buchstabenfolge" zu spalten, wobei nicht gespaltet werden darf, wenn der Treffer zwischen ", mitunder andern Zeichen, steckt?

Also sowas:
-boo "far" // Spalten
-boo "-boo" // Erster Treffer Spalten, zweiter nicht
-boo "far -boo far" // Erster Treffer spalten, zweiter nicht


Alternativ:
Ist es Möglich alle leerzeichen zwischen Anführungstriche mit Unterstrich (_) zu ersetzen? Also:

Aus
Hallo "Hallo Welt" Welt
Mach
Hallo "Hallo_Welt" Welt

Avatar user-118
15.06.2006 19:43

zum zeiten kann man da nicht etwas à la:

$variable = "Hallo Welt";
$variable = str_replace(" ", "_", $variable);
echo $variable;


mfg Alex

edit:// mhhh scheint doch nicht ganz das zu sein was du meinst, du willst ja alle zwischen anführungsstrichen.

Ich brauche keine Signatur
user-203
15.06.2006 20:07

Wie wäre es denn mit dieser Möglichkeit?
<?php

function ersetze( $str )
{
return '"'.str_replace( ' ', '_', $str ).'"';
}

$string = 'Dies ist ein "Test, der ist sooo toll", dass man "kaum glaubt", wie toll der ist';

$string = preg_replace( "@\\\"(.*)\"@esiU", "ersetze('\\1'zwinkern", $string );

echo $string;
/* Ausgabe:
Dies ist ein "Test,_der_ist_sooo_toll", dass man "kaum_glaubt", wie toll der ist
*/

?>

Denkt dran, Kinder auf dem Rücksitz verursachen Unfälle, Unfälle auf dem Rücksitz verursachen Kinder.
user-343
16.06.2006 15:50

Ui... Das ging aber schnell lächeln
Hab mir sogar noch kurz erlaubt die Funktion anzupassen:

<?php
function ersetze( $str )
{
return ''.str_replace( ' ', '_', $str[0] ).'';
}

$string = 'Dies ist ein "Test, der ist sooo toll", dass man "kaum glaubt", wie toll der ist';

$string = preg_replace_callback( "@\\\"(.*)\"@siU", "ersetze", $string );

echo $string;
?>


Danke! Fettes Grinsen


EEEEEDIT: Moment... i dafür da, dass gross und Kleinschreibung egal sind, oder?
Und für was ist s und U? :O