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

Plus d'informations
il y a 10 ans 11 mois #19403 par Laurent Dardenne
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 10 ans 11 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 10 ans 11 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 10 ans 11 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 10 ans 11 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 10 ans 11 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.051 secondes
Propulsé par Kunena