Question [Résolu] Remplacer une ligne dans une chaine

Plus d'informations
il y a 11 ans 1 mois #19403 par xyz
Réponse de xyz sur le sujet Re:Remplacer une line dans une chaine
Salut,
6ratgus écrit:

c'est la même chose sans le /r/n

pour info le CR/LF dans une regex est géré différemment via l'option multiligne.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 1 mois #19404 par Ossy
Réponse de Ossy sur le sujet Re:Remplacer une line dans une chaine
Le code du fichier test marche bien pour moi aussi.
Dans mon PS1 par contre il n'efface pas la ligne entier.

J'ai fait un nouveau script de test pour reproduire mon erreur.

Franchement la je ne comprend plus rien (déjà pas très doué avant).

Voici le script et le fichier texte source.

Merci d'avance pour vos lumières.

++
Ossy




$monTab = @(
(\"#NOMAFFICHE#\", \"Titi Tutu\"),
(\"#INFO#\" , \"###DELETE###\"),
(\"#FONCTION#\" , \"###DELETE###\"),
(\"#EMAIL#\" , \"###DELETE###\"),
(\"#TEL#\" , \"+33 0 00 00 00 00\"),
(\"#SOCIETE#\" , \"EIFFEL, PARIS\"),
(\"#FAX#\" , \"###DELETE###\"),
(\"#VILLE#\" , \"PARIS\"),
(\"#ADR#\" , \"###DELETE###\"),
(\"#GSM#\" , \"###DELETE###\"),
(\"#WEB#\" , \"###DELETE###\"),
(\"#COMPLETEMENT#\" , \"###DELETE###\")
)

$textHtm = Get-Content .\Model99.txt
for ($j=0;$j -le $monTab.length-1;$j++)
{
$result=$($monTab[$j][1])
$textHtm = $textHtm -replace $monTab[$j][0], $result
}

#Avant effacement
$textHtm | Set-Content .\test00.htm

#effacement des lignes ###DELETE###
$textHtm = $textHtm -replace \".*###DELETE###*.\",\"\"
$textHtm | where {$_ -ne \"\"} | Set-Content .\test01.htm




La pièce jointe Model99.txt est absente ou indisponible

Pièces jointes :

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 1 mois #19406 par Philippe
bonjour Laurent

pour info le CR/LF dans une regex est géré différemment via l'option multiligne.

je suppose que tu parle de :
[code:1]$regex = new-object System.Text.RegularExpressions.Regex ('.*###DELETE###*.', [System.Text.RegularExpressions.RegexOptions]::MultiLine)
[/code:1]
que j'ai trouvé sur ce site mais ça ne suffit pas j'ai l'impression !
je pense que regex n'est pas bon
mais le site cité ci-dessus doit avoir la syntaxe exacte en cherchent un peu par exemple ici <br><br>Message édité par: 6ratgus, à: 3/04/15 10:17

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 1 mois #19409 par Ossy
Réponse de Ossy sur le sujet Re:Remplacer une line dans une chaine
Re

Ca marche bien comme ceci pour moi:

$textHtm = $textHtm -replace \&quot;^.*###DELETE###*.*$\&quot;,\&quot;\&quot;


Encore un grand merci pour votre aide le temps passé.

++
Ossy

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 1 mois #19410 par Philippe
en faite c'était simple

moi j'avais trouvé ceci :
[code:1]$textHtm -replace '^.*###DELETE###.*$',\&quot;\&quot; | where {$_ -ne \&quot;\&quot;}[/code:1]<br><br>Message édité par: 6ratgus, à: 3/04/15 10:55

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 1 mois #19414 par Ossy
Réponse de Ossy sur le sujet Re:Remplacer une line dans une chaine
Re


Pour moi c'est encore mieux, merci
et bon WE

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.048 secondes
Propulsé par Kunena