J'ai ceci:
$text = '
hello world
hello
';
Comment supprimer
uniquement s'il est sur sa propre ligne? Donc, avec l'exemple ci-dessus, le second
doit être supprimé. Les résultats doivent être:
$text = '
hello world
hello
';
Ce que j'ai essayé jusqu'à présent
Via str_replace()
, je peux:
$text = str_replace(' ', '', $text);
Mais cela supprimera toutes les instances de
, non seulement lorsqu'il est sur sa propre ligne.
php
str-replace
Henrik Petterson
la source
la source
$text = str_replace('\n'.' '.'\n', '', $text);
mais je n'ai pas fonctionné. Tu vois .str_replace()
au lieu de juger mon expérience. =)Réponses:
J'ai déjà essayé cette approche et j'obtiens la sortie souhaitée
Ma sortie sur mon local est la suivante:
la source
Mon approche serait:
Résultat dans le code suivant:
la source
par du texte vide, sans télécommande toute la ligne: /. Aussi, gardez à l'esprit que ce n'est pas moi qui a dévalorisé votre réponse :) Mon commentaire était juste un message amical :)Peut-être quelque chose comme ça:
http://sandbox.onlinephpfunctions.com/code/f4192b95e0e41833b09598b6ec1258dca93c7f06
(qui fonctionne sur PHP5 , mais ne fonctionne pas sur certaines versions de PHP7 )
L'alternative serait:
la source
Si vous connaissez vos caractères de fin de ligne et que votre
est toujours suivi d'une nouvelle ligne:Sortie (certains espaces blancs perdus dans le formatage ici):
Avertissement: toute ligne se terminant par un avec un
autre contenu précédent serait également affectée, ce qui pourrait ne pas répondre à vos besoins.la source
str_replace()
!
? Par exemple:" \n"
Vous pouvez utiliser une expression régulière pour cela, en utilisant les modificateurs DOTALL et MULTILINE avec des assertions de regard:
(?sm)
: DOTALL (s) MULTILINE (m)(?<=\n)
: saut de ligne précédent (ne fait pas partie du match)\s* \s*
: simple & nbsp; avec espace blanc environnant en option(?=\n)
: retour à la ligne (ne fait pas partie du match)la source
Vous pouvez diviser en lignes, puis remplacer
la chaîne vide sur les lignes qui contiennent uniquement un
et un espace.Nous conserverons les fins de ligne d'origine, en les capturant.
Production:
la source