webForumDet fria alternativet

RegEx i VBA

.NET

2 svar · 449 visningar · startad av Pedda

Medlem sedan juni 20006 031 inlägg
Frågan#1

Någon som har koll på regular expressions i VBA?
Har en sträng som ser ut så här:
Generic Failure Report - Generated on 11 Mar 2009 by Nisse Hult

det jag vill plocka ut är datumet till en sträng och namnet till en annan sträng.
Namnet kan så klart se ut på olika sätt, men är alltid i slutet på strängen efter "by".

Medlem sedan juni 20019 519 inlägg
#2
(\d{1,2} (?:jan|feb|mar) \d{4}) by (.+)$

där du få kanske lägga in alla månader, eller byter ut jan|feb osv till \w{3} om det alltid är 3 tecken.

Medlem sedan apr. 20091 inlägg
#3

Kan det här fungera?

Sub delastring()
Dim dat$, namn$, origstring As String
Dim i%, inr2%, inr As Integer

origstring = "Generic Failure Report - Generated on 11 Mar 2009 by Nisse Hult"
i = Len(origstring)
inr = InStrRev(origstring, "on ")
dat = Mid(origstring, (inr + 3), 11) 'dat innehåller datum
i = Len(origstring)
inr = InStrRev(origstring, "by ")
inr2 = i - inr
namn = Right(origstring, inr2 - 2)  'namn innehåller namnet

End Sub

261 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)