(\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.
2 svar · 449 visningar · startad av Pedda
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".
(\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.
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