2013-10-11 2 views
0

J'ai une fonction:Regex et le modèle de saut de ligne

function ColoredQuote($string) { 
    $buffer = preg_replace('/>.+/', '<span class=quote>$0</span><br />', $string); 
    return $buffer; 
} 

Et il fonctionne très bien quand il y a une chaîne simple que je voudrais formater. Mais je veux que cette fonction ne fonctionne que lorsque la chaîne avec> mark est après une nouvelle ligne et quand il y a une deuxième nouvelle ligne à la fin de celle-ci. Je veux également empêcher l'espace juste après la marque>. J'essayais d'ajouter \ n, la marque^et d'autres qui pourraient être utiles mais ça ne marche pas.

Ainsi, le modèle devrait ressembler à:

[br]>any text[br] 

C'est très populaire méthode citant le imageboards

Répondre

0

Pour remplacer toutes les lignes commençant par > modifier votre regexp à ceci:

$buffer = preg_replace('/^>.+$/', '<span class=quote>$0</span><br />', $string); 

^ signifie début de la ligne $ signifie fin de ligne

0

Ok, je l'ai fait par moi-même, donc pour tous ceux qui trouveront utile:

function ColoredQuote($string) { 
    $buffer = preg_replace('!\>\S.+!', '<br /><span class=quote>$0</span><br />', $string); 
    return $buffer; 
    } 
Questions connexes