Expression régulière

Expression régulière - VB/VBA/VBS - Programmation

Marsh Posté le 26-06-2008 à 10:52:44    

Bonjour, j'ai besoin d'aide pour une petite expression régulière...
 
j'ai un nom de fichier comme ce ceci forum.hardware.fr.6.5.8.9.txt
je voudrais remplacer tous les . par des espaces uniquement quand ils sont précédés et suivis de lettre.
 
forum.hardware.fr.6.5.8.9.txt  --> forum hardware fr 6.5.8.9.txt
 
merci de votre aide
 

Reply

Marsh Posté le 26-06-2008 à 10:52:44   

Reply

Marsh Posté le 26-06-2008 à 14:12:01    

albator v a écrit :


 
ils sont précédés et suivis de lettre.
 
forum.hardware.fr.6.5.8.9.txt  --> forum hardware fr 6.5.8.9.txt
 
merci de votre aide
 


 
il faut savoir précisément dans quel cas tu réalises ta substitution car comme ci dessus c est plutot "ils sont précédés OU suivis de lettre".  :non:  
Néanmoins je pense qu une analyse de chaine et l'utilisation d'offset pour se placer sur les caractères précedents et suivants le "." devraient suffire (le code ascii pour identifier le type de caractère).

Reply

Marsh Posté le 27-06-2008 à 11:14:44    

non non, j'ai bien dit suivi ET précédé. donc si ya un point entre 2 chiffres, on garde, sinon on remplace.
 
Et pour etre plus precis, quand je parle d'expression reguliere je parle de ca : http://www-obs.univ-lyon1.fr/labo/ [...] egexp.html
 
 :jap:

Reply

Marsh Posté le 11-07-2008 à 14:17:21    

Salut, avec retard , voir si cela te convient , sans expression régulière, sous forme de fonction personnalisée ( à placer dans un module ), à améliorer


Option Explicit
 
Function SupprimerPoint(ByRef s As String) As String
Dim i As Long
Dim Pred As String, Succ As String, Chaine As String
Dim Pos As Long, L As Long
     
    L = Len(s)
    For i = 1 To L
        Pos = InStr(i, s, "." )
        If Pos > 0 Then
            Pred = Mid(s, Pos - 1, 1)
            Succ = Mid(s, Pos + 1, 1)
            If Not IsNumeric(Pred) And Not IsNumeric(Succ) Then
                Mid(s, Pos, 1) = " "
            End If
            i = Pos + 1
        End If
    Next i
    SupprimerPoint = s
End Function


Message édité par kiki29 le 11-07-2008 à 14:27:05
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed