J'ai des paragraphes comme celui-ci:
"C'est le premier par. r \ r \ n \ n ceci est le second avec beaucoup de nouvelle ligne Après \ n \ n \ n \ n \ n \ n et le dernier par. \ n \ r \ r " p> blockQuote>
Je veux supprimer les nouvelles lignes et envelopper chaque paragraphe avec la balise
code>. Je m'attends à une sortie comme suit: p>
xxx pré> p>
4 Réponses :
$d = "paragraph 1\r\nparagraph 2\r\n\r\n\r\nparagraph3";
echo "<p>".preg_replace('/[\r\n]+/','</p><p>',$d)."</p>";
Je pense que cela ne fonctionnerait pas correctement les freins de la ligne commencent par «R \` car il faudrait le premier R dans le cadre du texte, ai-je raison?
@Trufa: le [\ r \ n] code> signifie une nouvelle ligne ou un nouveau retour de chariot, le suivant + code> sens répété 1 fois plus. Cela gérerait l'une quelconque des commandes, une succession. (E.G. \ r code> \ n code> \ r \ n \ n code> `\ n \ r \ n` etc.)
@Trufa: Pourquoi cela s'en soucierait-il? "R" n'est pas un caractère de retour de chariot, cela fait partie de la chaîne. Et si le mot s'est terminé dans R, par exemple. Harder \ R \ N \ R \ NFaster \ r \ NStronger code>
@RunRunForest and @brad mon mauvais aux deux, c'était stupide de moi! Comme Brad explique mon exemple n'est pas valide car r \\ n'est pas un caractère de retour de chariot que je suis confus par l'exemple de l'op depuis son affichage r \ r \ n \ n code> mais c'est en fait une "faute de frappe" ou une erreur, alors Brad et Runrun, mon mal! BTW @RUNRUN ÊTRE VOUS CONCLACTER Ceci devrait être corrigé?
Et si var d = "" code> ou "\ n \ n \ n" code>?
@SLN: pensez à cela, voir la réponse mise à jour. Compte également "\ r \ nfoo" code> et "bar \ r \ n" code>
@Brad - Même après sa garniture de la variable doit être vérifiée de longueur, sinon "" se transforme en "
p>". Les conditions de limites et la coupe peuvent toutes être faites dans une seule regex / (?: [\ R \ n] *) (. +) (?: [\ R \ n] *) / code>
Vous pouvez essayer quelque chose comme ceci:
Que diriez-vous de cela? Ceci crée une sélection JQuery contenant les éléments P code>. p> p>
Remplacez Regex: 1 $ p> code> en Perl son: 1 $ <\ / p> / xg code> p> / (?: [\ r \ n] *) (. +) (?: [\ r \ n] *) / code>
Avec:
Contexte: Global P>
s / (?: [\ r \ n] *) (. +) (?: [\ r \ n] *) /
Est-ce réellement ce dont vous avez besoin ou seulement un exemple? Je veux dire qu'il y aura plus de pauses de ligne, etc. ... tout ce qui casse la ligne doit être converti en
ou p>?
C'est un exemple, il pourrait y avoir des pauses plus ou moins de la ligne. Tout ce qui ressemble à un paragraphe sera converti en
p>
\ R et d'autres caractères de contrôle doivent être ignorés dans HTML. Ils sont valables dans des chaînes (si elles sont échappées)