Question regex double ""

Plus d'informations
il y a 5 ans 11 mois #25358 par martinez
regex double "" a été créé par martinez
Bonjour,
Je recherche une regex qui me permette d'identifier les doubles \" mal placer.
Je reçois des csv de format ;\"dsfsedf\"; mais parfois j'ai ;\"dsfsedf\"\";
le problème est que mon traitement derrière est faux.
je recherche donc une regex de type $test2 = $test -replace '\w+(\\"\\")','\"'
le problème il me manque le dernier caractère.
Pouvez vous m'aider?
Merci d'avance.<br><br>Message édité par: martinez_pat, à: 30/04/18 15:15

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

Plus d'informations
il y a 5 ans 11 mois #25359 par Philippe
Réponse de Philippe sur le sujet Re:regex double ""
salut martinez_pat

la regex que tu cherche c'est :
[code:1]$v1 = ' ;\&quot;dsfsedf\&quot;; '
$v1 -match '.*\&quot;\&quot;+.*'
# renvoie false

$v1 = ' ;\&quot;dsfsedf\&quot;\&quot;; '
$v1 -match '.*\&quot;\&quot;+.*'
# renvoie true[/code:1]

mais sur un replace ça fonctionne pas :
[code:1]$v1 = ' ;\&quot;dsfsedf\&quot;\&quot;; '
$v1 -replace '.*(\&quot;+).*', '\&quot;'
# renvoie rien qu'un guillemet[/code:1]

si tu veux remplacer les deux guillemets par un seul, tu doit plutôt faire aussi :
[code:1]$v1 = ' ;\&quot;dsfsedf\&quot;\&quot;; '
$v1 -replace '\&quot;\&quot;', '\&quot;'
#renvoie ;\&quot;dsfsedf\&quot;;[/code:1]<br><br>Message édité par: 6ratgus, à: 30/04/18 15:54

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

Plus d'informations
il y a 5 ans 11 mois #25360 par Laurent Dardenne
Salut,
pour ce type d'analyse il faut référencer tout les cas qui se peuvent se présenter.
Par exemple celui-ci est-il possible :
[code:1]
'\&quot;un\&quot;;\&quot;deux\&quot;\&quot;;\&quot;\&quot;;\&quot;dsfsedf\&quot;\&quot;;\&quot;\&quot;trois\&quot;;\&quot;\&quot;\&quot;;\&quot;fin\&quot;\&quot;' -replace '(?&lt;!;«»)\&quot;\&quot;;', '\&quot;;'
[/code:1]
On a un champ vide, un champ avec la duplication en début de champ et une en fin de ligne, on pourrait aussi l'avoir en début.
Peut être tester un champ avec des doubles guillemets échappés...

Connais-tu la cause de cette duplication de guillemets ?

Tutoriels PowerShell

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

Plus d'informations
il y a 5 ans 11 mois #25362 par martinez
Réponse de martinez sur le sujet Re:regex double \&quot;\&quot;
Bonjour,
Merci de votre aide.
J'ai fini par trouvé cela:
get-content $File |foreach{$_ -replace '(\w)\\&quot;\\&quot;','$1\&quot;'}|out-file $File

Seul problème est que le fichier n'as pas fini de s'enregistré qu'il passe a la suite.
Une idée pour faire une pause?
Je pensé a un -wait mais ca ne le prends ps.
J'ai remplacé par set-content mais ca ne fonctionne toujours pas.

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

Plus d'informations
il y a 5 ans 11 mois #25363 par Quentin
Réponse de Quentin sur le sujet Re:regex double \&quot;\&quot;
Bonjour,

En fait tu restock directement les informations dans la même variable que tu lis
Essaie plutôt de diviser en 2 étapes :
$File2 = get-content $File |foreach{$_ -replace '(w)\&quot;\&quot;','$1\&quot;'}
Write-output $File2 | out-file -path \&quot;tonchemindefichier\&quot;

Cordialement,
Whitatrax

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

Plus d'informations
il y a 5 ans 11 mois #25364 par martinez
Réponse de martinez sur le sujet Re:regex double ""
Bonjour,
Même problème il passe a l’écriture avant d'avoir fini le traitement.
Le fichier fait 24 Mo

ca marche comme ca:sick: :

$temp = get-content $File |foreach{$_ -replace '(\w)\\&quot;\\&quot;','$1\&quot;'}
Start-Sleep 60
$temp | set-content $File -Force
Start-Sleep 10

Mais c'est pas beau
Une idée?<br><br>Message édité par: martinez_pat, à: 2/05/18 16:40

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

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